不管是系统的Intent还是其他程序广播的Intent,如果想接收并且对其处理的话,都必须注册一个 Broacast Receiver,并且一般要给注册的这个Broadcast Receiver设置一个Intent Filter来制定当前的BroadCast Receiver是对哪些Intent进行监听。
实现一个BroadCast Receiver:
我们可以通过继承Broadcast Receiver类,并重写onReceiver方法来实现,如:
public class MyReceiver extends BroadcastReceiver{
@override
public void onReceive(Context context,Intent intent){}
}
我们注册的BroadcastReceiver并非一直在后台执行,而是当事件或者相关的Intent来临的时候,才会被系统调用。
实现了BroadcastReceiver之后不要忘记进行注册:
第一种注册方法是在AndroidManifest.xml文件中进行注册,如:
<receiverandroid:name="MyReceiver">
<intent-filter>
<action android:name="com.shutao.action.NEW_BROADCAST">
</intent-filter>
</receiver>
第二种方式是在代码中直接进行注册:
IntentFilter filter = new IntentFilter(NEW_BROADCAST);
MyReceiver mr = new MyReceiver();
registerReceiver(mr,filter);
如果想将一个已经注册的BroadcastReceiver注销的话,可以用下边的代码:
unregisterReceiver(mr);