语法(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. DataBase 之 拉链表结构设计
  2. Chrome浏览器禁止缓存
  3. matlab生产正弦mif文件
  4. Geany编辑器怎么使中文不报错?
  5. db2查询表结构语句_SQL语句大全,赶快收藏吧!
  6. JDBC之在分层结构中实现业务
  7. 数组——两个有序数组的合并
  8. [ASP.net]ASP.net的RUL重写
  9. MySQL建表添加乐观锁字段_Java秒杀系统优化-Redis缓存-分布式session-RabbitMQ异步下单-页面静态化...
  10. 柯达新款Wi-Fi数码相机闪亮登场
  11. 你了解SVN, CVS等版本控制器吗?
  12. java----数组
  13. Chapter 5. MPEG-4 Visual
  14. 我想牵你的手,从心动到古稀
  15. javascript对象概念大全
  16. Mysql导出表结构和数据
  17. 10分钟帮你全面了解ASO
  18. 丝般顺滑!全新垃圾回收器 ZGC 初体验 | 龙蜥技术
  19. 2021-2027全球与中国大客户营销软件市场现状及未来发展趋势
  20. 迅镭激光打标机3mm激光深度高精度打标工艺-激光雕刻

热门文章

  1. 3D Vision公开课精华 | 深度三维感知:数据、学习架构与应用
  2. 我们一起爬爬爬之HTTP原理
  3. 从数学基础到贝叶斯理论到实践——深度AI科普团队
  4. 国土空间规划基数转换初探
  5. 怎么利用linux来操作手机,Linux_在Linux操作系统下操作蓝牙手机的方法,所谓操作,到现在只是通过蓝 - phpStudy...
  6. matlab lti全响应,《LTI系统的响应——实验报告》.doc
  7. create-react-app 脚手架工具完善自己所需要的入口文件
  8. 小汤学编程之JavaEE学习day06——LayUI
  9. JavaScript学习五
  10. 借贷宝详细注册步骤:邀请朋友送20元,朋友再邀请朋友还送你10元【3天已赚6千】(附我的邀请记录和提现到账截图)...