一、目标
1、了解什么是BroadcastReceiver
2、掌握BroadcastReceiver的使用
3、了解BroadcastReceiver的生命周期
二、什么是BroadcastReceiver
1、Broadcast(广播)是一种广泛运用在应用程序之间传播消息的机制
a、系统消息
a):Android系统发出的,电池不足、来电信息等
b、自定义消息
a):第三方应用发出的广播消息
2、什么是BroadcastReceiver
a、广播消息本质上就是一个Intent对象
b、Intent是一对一的通信,广播消息是一对多的通信
c、BroadcastReceiver用于接受并处理广播消息
d、BroadcastReceiver没有用户界面
I、借助其他方式和用户交互,例如:启动Activity、使用Notification等
三、广播消息的处理流程
1、广播消息的处理分为三个环节
a、消息发送
b、BroadcastReceiver注册
c、消息处理
四、处理系统广播消息
1、系统广播都被定义为android.content.Intent中的Action常量
2、利用BroadcastReceiver捕获系统广播
I、ACTION_BOOT_COMPLETED可以轻松实现开机后台程序自动运行
3、系统广播
4、在AndroidManifest.xml文件中增加应用权限声明
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
5、继承BroadcastReceiver并实现onReceiver方法
public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent){ ... } }
五、深入消息处理
1、无序广播:sentBroadcast(),效率高,但是消息处理之间没有关联、
2、有序广播sendOrderBroadcast(),可以传递处理数据
3、持续广播:sendStickyBroadcast()发送的广播一直存在
六、BroadcastReceiver的生命周期
1、BroadcastReceiver的onReceiver()方法执行完后,其实例就会被销毁。
2、如果onReceiver()方法在10秒内没有执行完,Android会认为程序无响应。
a、–所以BroadcastReceiver不能做比较耗时的操作,否则会弹出“Application No Resource”的对话框