4.2.1 示例代码

接收广播需要创建广播接收器。 使用广播接收器的风险和对策,根据收到的广播的类型而有所不同。 你可以在以下判断流程中找到你的广播接收器。 接收应用无法检查发送广播的应用的包名称,它是链接伙伴所需的。 因此,无法创建用于伙伴的广播接收器。

表 4.2:广播接收器的类型定义:

类型 定义
私有 只能接收来自相同应用的广播的广播接收器,所以是最安全的
公共 可以接收来自未指定的大量应用的广播的广播接收器
内部 只能接收来自其他内部应用的广播的广播接收器

另外,根据定义方法,广播接收器可以分为两类:静态和动态。 它们之间的差异可以在下图中找到。 示例代码展示了每类的实现方法。 还描述了发送应用的实现方法,因为发送信息的对策取决于接收器来确定。

表 4.2-2

定义方法 特性
静态 AndroidManifest.xml中的<receiver>元素定义 1)存在一些限制,不能收到一些由系统发送的广播,如ACTION_BATTERY_CHANGED。2)从应用最初启动开始,卸载之前,可以收到广播。
动态 通过在程序中调用registerReceiver()unregisterReceiver(),动态注册和注销广播接收器 1)可以收到静态广播接收器收不到的广播。2)广播的接收时期可以由程序控制,例如,只有活动在前台时,可以接收广播。3)不能创建私有广播接收器。

书籍推荐