Android中的广播主要的可以分为两大类:
1、是系统广播,对于此类广播用户只需注册之后再广播的onReceive(Context context, Intent intent)方法中写自己的逻辑即可,
2、是用户自定义的广播,对于此类广播用户除了要注册并在onReceive(Context context, Intent intent)方法中写自己的逻辑外,还需要用户在触发某些操作的时候调用sendBroadcast(intent)方法,将广播发送出去
广播的注册也用两种方式:
1、在清单文件manifest.xml中注册;
<receiver android:name=".USBBroadcastReceiver" >
<intent-filter android:priority="800" >
<action android:name="android.hardware.usb.action.USB_STATE" />
</intent-filter>
</receiver>
2、使用代码调用 registerReceiver(receiver, filter) 方法注册
public void registerReceiver() {
IntentFilter filter = new IntentFilter();
filter.addAction("android.hardware.usb.action.USB_STATE");
registerReceiver(receiver, filter);
}
这两种注册方式有很大的区别,通过清单文件注册的广播只要触发相应的操作广播都会接收到无论你的应用程序是否正在运行,所以使用这种方式注册广播的时候,用户需要小心,对于使用代码注册的广播则比较灵活用户可以再不需要的时候手动的调用unregisterReceiver(receiver) 方法来取消注册,这样一来用户就能确保只有应用打开的时候广播才起作用。