<receiverandroid: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> html
被包含于(CONTAINED IN): android
<application> app
可以包含的元素(CAN CONTAIN): ide
<intent-filter> 性能
<meta-data> ui
说明(DESCRIPTION): spa
这个元素用于声明一个广播接收器(一个BroadcastReceiver 子类),做为应用程序的组件之一。广播接收器可以让应用程序接收那些由系统或其余应用程序发出的广播Intent对象,即便是在该应用程序的其余组件没有运行的时候,也可以接收来自系统或其余应用程序的广播消息。 htm
有两种方式让系统知道本应用程序用户一个广播接收器: 对象
1. 在应用程序的清单文件中,使用本元素来声明注册一个广播接收器; 进程
2. 在代码中动态的建立一个广播接收器,并使用Context.registerReceiver()方法来注册它。有关更多动态建立接收器的方法,请看BoradcastReceiver类说明。
属性(ATTRIBUTES):
android:enabled
这个属性用于定义系统是否可以实例化这个广播接收器,若是设置为true,则可以实例化,若是设置为false,则不能被实例化。默认值是true。
<application>元素有它本身的enabled属性,这个属性会应用给应用程序的全部组件,包括广播接收器。<application>和<receiver>元素的这个属性都必须是true,这个广播接收器才可以被启用。若是有一个被设置为false,该广播接收器会被禁止实例化。
android:exported
这个属性用于指示该广播接收器是否可以接收来自应用程序外部的消息,若是设置true,则可以接收,若是设置为false,则不可以接收。若是设置为false,这该接收只能接收那些由相同应用程序组件或带有相同用户ID的应用程序所发出的消息。
它的默认值依赖它所包含的Intent过滤器。若是不包含过滤器,则接收器只能由指定了明确类名的Intent对象来调用,这就意味着该接收器只能在应用程序内部使用(由于一般在应用程序外部是不会知道这个类名的)。这种状况下默认值就是false。另外一方面,若是接受器至少包含了一个过滤器,那么就意味着这个接收器可以接收来自系统或其余应用程序的Intent对象,所以默认值是true。
这个属性不是惟一的限制广播接收外部调用的方法,还可以经过全限来限制可以给它发送消息的外部实体。
android:icon
这个属性定义了一个表明广播接收器的图标,这个属性必须用包含图片定义的可绘制资源来设定。若是没有设置这个属性,会是应用<application>元素的icon属性值来代替。
不管是这个属性仍是<application>元素的icon属性,它们设置的图标也是全部的接收器的Intent过滤器的默认图标。
android:label
这个属性给广播接收器设定一个用户可读的懂的文本标签。若是这个属性没有设置,那么就会使用<application>元素的label属性值来代替。
不管是这个属性仍是<application>元素的label属性,它们设置的标签也是全部的接收器的Intent过滤器的默认标签。
应该使用一个字符串资源来设置这个属性,以便它可以像用户界面中的其余字符串同样可以被本地化。可是,为了应用开发的便利,也可以使用原生的字符串来设置。
android:name
这个属性值要用广播接收器的实现类的类名来设置,它是BroadcastReceiver类的一个子类。一般要使用类的全名来设置(如:com.example.project.ReportReceiver)。可是,也可使用简写(如:.ReportReceiver)。系统会自动的把<manifest>元素中的package属性所设定的包名添加到这个简写的名称上。
一旦发布了应用程序,就不该该在改变这个名字了(除非android:exported=”false”)。
这个属性没有默认值,这个名字必须被指定。
android:permission
这个属性用于定义把消息发送给该广播接收器的广播器所必需要有的权限。若是没有设置这个属性,那么<application>元素的permission属性所设置的权限就适用于这个广播接收器。若是<application>元素也没有设置权限,那么该接收器就不授权限的保护。
android:process
这个属性用于设置该广播接收器应该运行在那个进程中的进程名。一般,应用程序的全部组件都在给应用程序建立的默认进程中运行,它有与应用程序包名相同的名称。<application>元素的process属性可以给它的全部组件设置一个不一样的默认进程,可是它的每一个组件本身的process属性可以覆盖这个默认设置,这样就容许把一个应用程序分离到多个进程中。
若是这个属性值用“:”开头,则在须要的时候系统会建立一个新的,应用程序私有的进程,而且该广播接收器也会运行在这个进程中。若是这个属性值用小写字母开头,那么接收器就会运行在以这个属性值命名的全局进程中,它提供使其工做的权限。这样就容许不一样的应用程序组件来共享这个进程。