目录
概述
BroadcastReceiver是Android四大组件之一,用于监听系统的广播消息。BroadcastReceiver使用非常简单,它在工作方式上更接近于函数,当BroadcastReceiver对象被构造出来后,通常只执行BroadcastReceiver.onReceive方法,便结束了自己的生命周期。虽然使用简单,但是它的功能却非常强大,因为BroadcastReceiver可以监听系统全局广播,所以BroadcastReceiver可以用于不同进程组件之间的通信。
此外,和所有组件一样,BroadcastReceiver组件对象也是在应用进程的主线程中被构造,因此,其功能函数onReceive的执行必须是同步且快速的,否则就会阻塞与用户交互的当前进程,影响用户体验。
BroadcastReceiver的设计,解决了应用开发中一个很重要的问题,就是后台事件的监听。例如,早期的Symbian中做一个来电归属地提示之类的应用,就必须让应用进程始终运行着,并一直在后台循环等待相关事件的发生。这样容易浪费系统资源,而且很容易被杀死。而有了BroadcastReceiver的Android,只有当事件真正发生时,组件管理服务才会根据配置信息通知对应的触发器组件对象,构造执行组件的进程。
BroadcastReceiver的使用
创建BroadcastReceiver的子类
首先,需要构建自己的BroadcastReceiver子类,继承自android.content.BroadcastReceiver类,并实现其中的onReceive方法。示例代码如下:
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class MyBroadcastReceiver extends BroadcastReceiver {