Android官方文档—APP清单()

<receiver>

语法:

<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子类)作为应用程序的组件之一。广播接收器使应用程序能够接收由系统或其他应用程序广播的意图,即使应用程序的其他组件未运行也是如此。

有两种方法可以使系统知道广播接收器:一种是使用此元素在清单文件中声明它。另一种是在代码中动态创建接收器并使用Context.registerReceiver()方法注册它。有关动态创建的接收器的更多信息,请参阅BroadcastReceiver类描述。

属性:

android:enabled

广播接收器是否可以由系统实例化 - 如果可以,则为“true”,否则为“false”。默认值是true”。

<application>元素具有自己的enabled属性,适用于所有应用程序组件,包括广播接收器。 <application>和<receiver>属性必须都为“true”才能启用广播接收器。如果其中任何一个是“假”,则禁用;它无法实例化。

android:exported

广播接收器是否可以从其应用程序之外的源接收消息 - 如果可以,则为“true”,否则为“false”。如果为“假”,则广播接收器可以接收的唯一消息是由相同应用程序的组件或具有相同用户ID的应用程序发送的消息。

默认值取决于广播接收器是否包含意图过滤器。缺少任何过滤器意味着只能由指定其确切类名的Intent对象调用它。这意味着接收器仅供应用程序内部使用(因为其他人通常不知道类名)。所以在这种情况下,默认值为“false”。另一方面,至少一个过滤器的存在意味着广播接收器旨在接收由系统或其他应用程序广播的意图,因此默认值是“真”。

此属性不是限制广播接收器外部曝光的唯一方法。您还可以使用权限来限制可以向其发送消息的外部实体(请参阅权限属性)。

android:icon

表示广播接收器的图标。必须将此属性设置为对包含图像定义的可绘制资源的引用。如果未设置,则使用为整个应用程序指定的图标(请参阅<application>元素的图标属性)。

广播接收器的图标 - 无论是在此处设置还是由<application>元素设置 - 也是所有接收器的intent过滤器的默认图标(请参阅<intent-filter>元素的图标属性)。

android:label

广播接收器的用户可读标签。如果未设置此属性,则使用整个应用程序的标签集(请参阅<application>元素的label属性)。

广播接收器的标签 - 无论是在此处设置还是由<application>元素设置 - 也是所有接收器的intent过滤器的默认标签(请参阅<intent-filter>元素的label属性)。

应将标签设置为对字符串资源的引用,以便它可以像用户界面中的其他字符串一样进行本地化。但是,为了方便您开发应用程序,它也可以设置为原始字符串。

android:name

实现广播接收器的类的名称,BroadcastReceiver的子类。这应该是一个完全限定的类名(例如“com.example.project.ReportReceiver”)。但是,作为简写,如果名称的第一个字符是句点(例如,“。ReportReceiver”),则它将附加到<manifest>元素中指定的包名称。

布应用程序后,不应更改此名称(除非您已设置android:exported =“false”)。

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

android:permission

广播公司必须具有向广播接收器发送消息的权限的名称。如果未设置此属性,则<application>元素的权限属性设置的权限适用于广播接收器。如果两个属性均未设置,则接收方不受权限保护。

有关权限的更多信息,请参阅简介中的“权限”部分和单独的文档“安全性和权限”。

android:process

广播接收器应运行的进程的名称。通常,应用程序的所有组件都在为应用程序创建的默认进程中运行。它与应用程序包的名称相同。 <application>元素的process属性可以为所有组件设置不同的默认值。但是每个组件都可以使用自己的流程属性覆盖默认值,从而允许您跨多个流程分布应用程序。

如果分配给此属性的名称以冒号(':')开头,则在需要时创建一个专用于应用程序的新进程,并且广播接收器在该进程中运行。如果进程名称以小写字符开头,则接收方将在该名称的全局进程中运行,前提是它有权这样做。这允许不同应用程序中的组件共享进程,从而减少资源使用。

引入于:

API Level 1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章