一 . 注册BroadcastReceiver的方法
BroadcastReceiver用于监听被广播的事件(intent)为了达到这个目的,BroadcastReceiver必须进行注册,注册的方法有以下俩种。
1 . 在应用程序代码中进行注册
registerReceiver(receiver,filter)
unregisterReceiver(receiver)//解除broadcastReceiver对象的注册
启动Activity时注册,在Activity不可见以后取消注册。
//生成一个IntentFilter对象
Intentfilter filter = new IntentFilter();
//为IntentFilter添加一个Action
filter.addAction("android.provider.Telephony.SMS_RECEIVED");
//注册broadcastReceiver对象
this.registerReceiver(smsReceiver,filter);
smsReceiver为接收广播的BroadcastReceiver对象
如果一个BroadcastReceive用于更新UI,那么通信会使用这种方法进行注册BroadcastReceive;在Activity启动的时候注册BroadcastReceive,而Activity不可见以后就取消注册。
2 . 在AndroidManifest.xml中进行注册
<receiver
android:name=".接收器类名">
<intent-filter>
<action
android:name="android.intent.action.EDIT">
</intent-filter>
</receiver>
intent-filter过滤器挑选广播中的Action是否匹配,若匹配则生成该Receiver对象
上述注册特点是:应用程序结束了之后,该BroadcastReceiver同样会接受到广播,一直处于活动状态,有的应用程序需要这一点,有的则不需要,不需要时应该使用另一种注册方法。
二 . Android内置的Broadcast Actions
action中可以有很多类型如ACTION_VIEW\ACTIONO_EDIT\ACTION_MAIN\ACTION_DIAL\ACTION_CAMERA_BUTTON\ACTION_BATTERY_LOW\等等
在帮助文档android:content备注中有broadcastaction表示的常量。