文章地址:http://blog.csdn.net/scarthr/article/details/41950153
今天我们来学习Android第三个核心组件——Broadcast Receiver。
一 BroadcastReceiver概述
我们使用BroadcastReceiver可以监听许多系统广播,如:电量不足、开机启动、接收短信等。也可以用它来再应用内部进行数据传递,还可以在应用之间进行广播传递数据。BroadcastReceiver的效率是比较低的,所以我们如果需要传递特别大的数据或者要频繁使用它,是不建议的。
二 BroadcastReceiver创建
创建一个接收器需要继承BroadcastReceiver类:
class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 这里写我们接受到广播后要处理的事情
}
}
然后需要在AndroidManifest中注册BroadcastReceiver,最后在Activity中调用
Intent intent = new Intent(this, MyReceiver.class);
sendBroadcast(intent);
就可以发送一条广播,发送后会触发上面的onReceive方法,参数中的intent还可以包含参数传递。
三 BroadcastReceiver两种注册方式
1. 直接在AndroidManifest注册
如上面所讲。
2. Java代码注册
在Activity中使用
MyReceiver receiver = new MyReceiver();
registerReceiver(receiver, new IntentFilter("com.thr.myreceiver"));
来注册接收器,其中IntentFilter是用来指定一个地址,用来使相对应的广播接收器接受使用的。
然后调用
Intent intent = new Intent("com.thr.myreceiver");
sendBroadcast(intent);
<span style="font-family:Microsoft YaHei;">即可发送广播。
要解除注册广播,使用
unregisterReceiver(receiver);
即可。