一 . 註冊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表示的常量。