语法(SYNTAX):

<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>

被包含于(CONTAINED IN):

<application>

能够包含的元素(CAN CONTAIN):

<intent-filter>

<meta-data>

说明(DESCRIPTION):

这个元素用于声明一个广播接收器(一个BroadcastReceiver 子类),作为应用程序的组件之一。广播接收器能够让应用程序接收那些由系统或其他应用程序发出的广播Intent对象,即使是在该应用程序的其他组件没有运行的时候,也能够接收来自系统或其他应用程序的广播消息。

有两种方式让系统知道本应用程序用户一个广播接收器:

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属性能够覆盖这个默认设置,这样就允许把一个应用程序分离到多个进程中。

如果这个属性值用“:”开头,则在需要的时候系统会创建一个新的,应用程序私有的进程,并且该广播接收器也会运行在这个进程中。如果这个属性值用小写字母开头,那么接收器就会运行在以这个属性值命名的全局进程中,它提供使其工作的权限。这样就允许不同的应用程序组件来共享这个进程。

被引入版本(INTRODUCED IN):

API Level 1

转载于:https://www.cnblogs.com/xieyuan/p/3787261.html

AndroidManifest.xml文件详解(receiver)相关推荐

  1. [转]AndroidManifest.xml文件详解

    转自:http://www.cnblogs.com/greatverve/archive/2012/05/08/AndroidManifest-xml.html AndroidManifest.xml ...

  2. AndroidManifest.xml 文件详解

    AndroidManifest.xml 文件详解 AndroidManifest.xml 文件详解 概述 文件特性 包名和应用ID(application ID) 应用程序组件(App compone ...

  3. AndroidManifest.xml文件详解

    更多原文,请见:http://mobile.51cto.com/aprogram-340646.htm AndroidManifest.xml文件是Android系统重要的权限申请和定义配置文件,程序 ...

  4. AndroidManifest.xml文件详解(application)

    http://blog.csdn.net/think_soft/article/details/7557101 语法(SYNATX): <application android:allowTas ...

  5. AndroidManifest.xml文件详解(activity)(三)四种工作模式

    android:launchMode 这个属性定义了应该如何启动Activity的一个指令.有四种工作模式会跟Intent对象中的Activity标记(FLAG_ACTIVITY_*常量)结合在一起用 ...

  6. AndroidManifest.xml文件详解(uses-sdk)

    语法(SYNTAX): <uses-sdkandroid:minSdkVersion="integer"           android:targetSdkVersion ...

  7. AndroidManifest.xml配置文件详解

    AndroidManifest.xml配置文件详解 . AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查 ...

  8. javaweb web.xml文件详解

    web.xml文件详解 前言:一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程.web.xml主要用来配置Filter.Listener.Servlet等 ...

  9. schema约束文档与xml文件详解

    schema约束文档与xml文件详解 1.前言 2.schema约束文档(.xsd文件) 2.1 targetNameSpace 2.2官方文档与自定义文档的关系 2.3 声明名称空间 2.4 sch ...

最新文章

  1. Android解决button反复点击问题
  2. Spring Data(二)查询
  3. python_格式化输出(%用法和format用法)
  4. 自动化测试验证码代码常用的四种方式
  5. 电子科技大学《图论及其应用》复习总结--第五章 匹配与因子分解
  6. 定位算法——多边测量法及MATLAB编程
  7. linux常用网站(不定期更新)
  8. 操作系统之运行环境简介
  9. 性能跑分第一的安卓模拟器?
  10. 很喜欢这句话:将军赶路,不追小兔
  11. 以太坊编程-Geth
  12. *5-1 CCF 2015-03-1 图像旋转
  13. Oracle 的汉译名 甲骨文 由来
  14. OnlyOffice验证(四)MoblieWeb编译
  15. Android 简单数独开发
  16. 小程序云开发——创建第一个商品数据
  17. pyqt(一)pyqt环境搭建 win+mac(pycharm+designer)
  18. ​DCIC 2020:智慧海洋建设 开源方案复盘笔记
  19. Qt低延时/可集成嵌入的网络播放器 –soundTouch的使用
  20. 三菱PLC FX3U-48MRT 源码,原理图,PCBFX3U PLC控制器资料

热门文章

  1. 源码安装mysql 5.1_Linux环境下源码编译安装MySQL5.1
  2. c#日期转换周几_RPA经验:使用 selector 选择日期
  3. 晶振两端的谐振电容有特殊要求吗_干货 | 晶振电路设计诀窍
  4. 1071 - Specified key was too long; max key length is 767 bytes
  5. 小学教师计算机应用水平和能力,中小学教师信息技术应用能力的现状与对策
  6. Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)!
  7. php post请求 下载文件,POST请求 下载文件
  8. JSTL (JSP标准标签库)
  9. 「雕爷学编程」Arduino动手做(24)——水位传感器模块
  10. [luoguP2324] [SCOI2005]骑士精神(A*?)