一:BroadcastReceiver :是用來接受廣播的,
它有一個回調方法:void
onReceive(Context curContext, Intent broadcastMsg) 我們來處理接受的廣播。
廣播的接收:接收可以建立一個類,繼承至BroadcastReceiver,也可以建一個BroadcastReceiver的執行個體,然後得寫onReceive方法,實現如下:
protected BroadcastReceiver mEvtReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context
context, Intent intent) {
String action = intent.getAction();
//通過註冊中的action來判斷,處理那個廣播
if (action.equals("android.intent.action.BOOT_COMPLETED")) {
//Do something
}
}
};
二:BroadcastReceiver的使用(使用之前要先註冊,有兩種註冊的方式)
方式1:手動註冊,手動登出
註冊:
IntentFilter filter = new IntentFilter();
filter.addAction("android.provider.Telephony.SMS_RECEIVD");
registerReceiver(mEvtReceiver,filter);
//mEvtReceiver是廣播名,filter是廣播的動作
登出:最後在程式的onDestroy中要登出廣播,實現如下:
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(mPlayerEvtReceiver);
}
方式2:在Manifast.xml中註冊
<receiver android:name=".mEvtReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
三:自己也可以發送廣播
Intent intent = new Intent("android.intent.action.BOOT_COMPLETED");
sendBroadcast(i);
然後就是接收廣播了,看第一行。