本章讲解4大组件之一BroadcastReceiver的使用,广播的动态注册和静态注册,有序广播和无序广播的发送,怎样设置广播的优先级等等
BroadcastReceiver 广播接受器
是对发送出来的广播进行过滤接受并响应的一类组件,他就是用来接受
来自系统和应用中的广播。
Broadcast(广播) 是一种广泛运用在应用程序之间传输信息的机制。
用途:
开机时,广播通知
网络联机时,广播通知
电量低时,广播通知
应用开发者,值需要掌握BroadcastReceiver,而不是Broadcast(广播)
使用方法:
发送:
把信息装入一个Intent对象
通过调用相应的方法将Intent对象以广播方式发送出去
sendBroadcast()
sendorderBroadcast()
sendStickyBroadcast()
接受:
Intent发送后,已注册的BroadcastReceiver会检查注册的intentfilter
BroadcastReceiver生命周期10秒左右
BroadcastReceiver执行完立即销毁
广播的种类:
普通广播(Normal Broadcast)
所有监听该广播的广播接受者都可以监听该广播。
有序广播(Order Broadcast)
按照接收者的优先顺序接收广播 -1000-1000 值越大,级别越高。
异步广播(粘滞性滞留广播)
不能将处理结果串给下一个接受者,无法终止广播
静态注册
<receiver android:name=".BC1" >
<intent-filter>
<!--过滤
<intent-filter
android:priority="100">
-->
<action android:name="BC_One" />
</intent-filter>
</receiver>
<receiver android:name=".BC2" >
<!--
<intent-filter
android:priority="200">
动态注册高于静态注册
-->
<intent-filter>
<action android:name="BC_One" />
</intent-filter>
</receiver>
动态注册
//动态注册 BC2
IntentFilter intentfilter = new IntentFilter("BC_One");
BC2 bc2 = new BC2();
registerReceiver(bc2, intentfilter);