1.理论概述
publicclass MyBroadcastReceiver extends BroadcastReceiver{
publicvoid onReceive(Context context, Intent intent){
//处理广播
}
}
<receiver android:name="com.atguigu.t6_br.MyBroadcastReceiver">
<!--priority指定当前receiver的优先级,值是0-1000,越大越好 -->
<intent-filter android:priority="500">
<actionandroid:name="com.atguigu.t6_br.mybroadcastreceiver"/>
</intent-filter>
</receiver>
MyBroadcastReceiver2receiver2 = new MyBroadcastReceiver2();
IntentFilterfilter = new IntentFilter(action);
registerReceiver(receiver2,filter);
类别 | 静态注册 | 动态注册 |
注册方式 | 配置文件 | Java代码 |
注册的时间 | 应用安装成功/手机开机完成 注册时不会创建对象 接收到广播才创建 | 执行registerReceiver(receiver, intentFilter) 注册就创建对象 |
生命结束的时间 (解注册) | 应用卸载 对象执行onReceive()后就回收了 | 执行unregisterReceiver() (activity退出必须解注册) 解注册后对象被回收 |
应用情景 | 需要监听的时间为应用的整个生命过程中 | 只服务于某个Activity/Se rvice |
类别 | 一般广播 | 有序广播 |
多人接收时是否有序 | 无序, 都会同时执行 | 有序,根据优先级和注册先后依次执行 |
是否可以中断 | 不可以 | 可以, 通过br.abortBroadcast() 中断后, 后面的接收器不能接收到此广播了 |