BroadcastReceiver:
1.广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播源自于系统代码,如通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项
2.应用程序可以有任意数量的广播接收器以接收它所感兴趣的所有广播并予以响应
3.广播接收器没有用户界面,他们可以启动一个Activity来响应它们收到的信息,或者用NotificationManager来通知用户
广播事件分为两种:系统广播和自定义广播
广播流程:
1.注册广播事件:
->静态注册:在AndroidManifest.xml文件中用标签注册,并设置过滤器,如:
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="包名.intent.action.XXX"/>
</intent-filter>
</receiver>
->动态注册:
MyReceiver receiver = new MyReceiver();
IntentFilter intentFilter= new IntentFilter();
intentFilter.addAction(String action);
registerReceiver(receiver, intentFilter); //注销用unregisterReceiver(receiver);一般在Activity的onStart()中注册,在onStop()中注销
2.发送广播事件:
指定Action:Intent intent = new Intent(String action);
可通过Intent携带信息:intent.putExtra("data","XXXXX");
发送:Context.sendBroadcast(intent);
3.接收广播事件:
当广播被广播接收器接收后,会调用广播接收器的onReceive()方法,并将携带信息的Intent对象传给它,onReceive()方法负责相应广播,但其执行时间不应超过5s