您的位置:首页 > 其它

四大组件之BroadcastReceive

2016-01-14 09:23 225 查看
一、什么是BroadcastReceive:

BroadcastReceive:广播接收者,
顾名思义,用来接收应用程序和系统发出来的广播,作用体现在方方面面:例如系统电量不足时会产生一个广播,可以利用这条广播提醒用户;系统开机后会产生一条广播,通过这条广播可以开启开机的相关服务等;
二、BroadcastReceive的注册:

1、静态注册:



<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.MY_BROADCAST"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
配置好了以后,只要在 只要android.intent.action.MY_BROADCAST这个地址的广播,MyReceiver都能够接收的到;


2、动态注册:



MyReceiver receiver = new MyReceiver();

IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.MY_BROADCAST");

registerReceiver(receiver, filter);


注意,registerReceiver是android.content.ContextWrapper类中的方法,Activity和Service都继承了ContextWrapper,所以可以直接调用。在实际应用中,我们在Activity或Service中注册了一个BroadcastReceiver,当这个Activity或Service被销毁时如果没有解除注册,系统会报一个异常,提示我们是否忘记解除注册了。所以,记得在特定的地方执行解除注册操作:

@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}


三、BroadcastReceive类型:



有序广播(Ordered Broadcast):
它每次只发送到优先级较高的接收者那里,然后由优先级高的接受者再传播到优先级低的接收者那里,优先级高的接收者有能力终止这个广播。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: