• Android开发-API指南-<receiver>


    <receiver>

    英文原文:http://developer.android.com/guide/topics/manifest/receiver-element.html
    采集(更新)日期:2014-7-2
    搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmv7.html

    语法:
    <receiver android:enabled=["true" | "false"]
              android:exported=["true" | "false"]
              android:icon="drawable resource"
              android:label="string resource"
              android:name="string"
              android:permission="string"
              android:process="string" >
        . . .
    </receiver>
    包含于:
    <application>
    可包含:
    <intent-filter>
    <meta-data>
    说明:
    声明一个广播接收器( BroadcastReceiver 的子类),并成为应用程序的一个组件。 广播接收器使得应用程序能接收由系统或其他应用程序广播的 Intent,即使本应用程序的其他组件都没有运行也没关系。

    向系统声明广播接收器的方式有两种: 一种是在 Manifest 文件中以本元素声明, 另一种是用代码动态创建接收器并用 Context.registerReceiver() 方法注册。 关于动态创建广播接收器的更多信息,请参阅 BroadcastReceiver 类的说明。

    属性:
    android:enabled
    广播接收器是否能被系统实例化 — “true”可以,“false”不可以。 默认值是“true”。

    <application> 元素拥有自己的 enabled 属性,适用于应用程序的所有组件,包括广播接收器。 为了启用广播接收器, <application> <receiver> 的本属性都必须设置为“true”。 只要其中任何一个为“false”,则广播接收器就将被禁用,它将不能被实例化。

    android:exported
    广播接收器能否接收来自应用程序之外的消息 — “true”可接收,“false”不接收。 如果设为“false”,则本接收器只能接收本应用程序或用户 ID 相同程序的组件所发出的消息。

    默认值依赖于广播接收器是否包含 Intent 过滤器。 如果不含任何过滤器,则意味着只能通过指定精确类名的 Intent 对象来触发。 这表示该接收器仅供应用程序内部使用(因为其他程序通常不知道精确的类名称)。这时缺省值是“false”。 另一方面,如果存在一个以上的过滤器,则表示广播接收器愿意接收来自系统或其他应用程序的 Intent,因此默认值是“true”。

    本属性并不是限制广播接收器对外公开程度的唯一途径。 还可以利用权限来对可发送消息的外部对象进行限制(请参阅permission属性)。

    android:icon
    代表广播接收器的图标。 本属性必须设为对 drawable 资源的引用,该资源包含了图片的定义。 如果未设置本属性值,则将使用全局性的应用程序图标来代替。(参阅 <application> 元素的 icon 属性)。

    广播接收器的图标 — 不管是在本属性还是在 <application> 元素中设置的 — 同时也是接收器中所有 Intent 过滤器的默认图标(参阅 <intent-filter> 元素的 icon 属性)。

    android:label
    供用户阅读的广播接收器的文本标签。 如果未设置本属性,则用全局性的应用程序文本标签代替(参阅 <application> 元素的 label 属性)。

    广播接收器的文本标签 — 不管是在本属性还是在 <application> 元素中设置的 — 同时也是接收器中所有 Intent 过滤器的默认文本标签(参阅 <application> 元素的 label属性)。

    本文本标签应该设为对字符串资源的引用,这样就能像用户界面中的其他字符串一样对其进行本地化。 不过为了应用程序开发时的便利,也可以直接设置为字符串。

    android:name
    实现广播接收器的类的名称,即 BroadcastReceiver 的子类。 这应该是一个完全限定格式的类名(比如“com.example.project.ReportReceiver”)。 不过作为简称,如果首字符为句点(比如“. ReportReceiver”,则会自动在前面加上 <manifest> 元素指定的包名称。

    应用程序一经发布,就 不应更改本名称 (除非设置了android:exported="false")。

    没有默认值。本名称必须指定。

    android:permission
    发送方要发送消息给广播接收器所必需的权限名称。 如果本属性未被设置,则 <application> 元素的 permission 属性所设置的权限将应用于广播接收器。 如果以上两个属性都未设置,则本接收器将不受权限机制的保护。

    关于权限的详细信息,请参阅 Manifest 介绍一文的 Permissions 部分和另一篇文档安全和权限

    android:process
    运行广播接收器的进程名称。 通常,应用程序的所有组件都运行在创建时的默认进程中。 该进程的名称与程序包名相同。 <application> 元素的 process 属性可以为每个组件设置不同的默认进程。 但每个组件也可以用各自的 process 属性覆盖该默认值,使得程序可以跨越多个进程运行。

    如果本属性值的名称以冒号(':')开头,则必要时会新建一个属于该程序私有的进程,广播接收器将运行于该新进程中。 如果进程名称以小写字母开头,则广播接收器将运行于一个以此名字命名的全局进程中,并赋予相应的访问权限。 这就允许不同应用程序的多个组件共享同一个进程,以减少资源的占用。

    引入自:
    API 级别 1
  • 相关阅读:
    小学四则算式扩充
    软件工程初涉之感
    回头
    个人最终总结
    团队作业
    结对编程
    老李的blog使用日记(3)
    进度
    老李的blog使用日记(2)
    红果果
  • 原文地址:https://www.cnblogs.com/popapa/p/android_receiver-element.html
Copyright © 2020-2023  润新知