• Android BroadcastReceiver:接收广播

    广播(Broadcast)是 Android 系统中应用程序间通信的手段。

    当有特定事件发生时,例如有来电、有短信、电池电量变化等事件发生时,Android 系统都会产生特定的 Intent 对象并且自动进行广播,而针对特定事件注册的 BroadcastReceiver 会接收到这些广播,并获取 Intent 对象中的数据进行处理。

    在广播 Intent 对象时可以指定用户权限,以此限制仅有获得了相应权限的 BroadcastReceiver 才能接收并处理对应的广播。

    BroadcastReceiver 有动态和静态两种注册方法。

    • 动态注册方法即使用 Context. registerReceiver() 方法进行注册,需要特别注意的是,动态注册方法在退出程序前要使用 Context.unregisterReceiver() 方法撤销注册。
    • 静态注册方法即在 AndroidManifest.xml 文件中通过 <receiver> 标签进行注册。

    一个 BroadcastReceiver 对象只有在被调用 onReceive(Context, Intent) 时才有效,当从该函数返回后,该对象就已无效了,其生命周期结束。

    下面介绍如何使用动态注册来实现监听电池剩余电量。

    实例 BatteryDemo 演示了使用动态注册 BroadcastReceiver 对象并且接收系统电量改变事件并加以处理的过程,运行效果如图 1 所示。

    BatteryDemo的运行效果
    图 1  BatteryDemo的运行效果

更多...

加载中...