當(dāng)我們注冊一個BroadcastReceiver時,該接收器將會接收并處理與其過濾器匹配的所有廣播消息。當(dāng)接收到廣播消息時,系統(tǒng)會自動調(diào)用BroadcastReceiver的onReceive()方法來處理該消息。
onReceive()方法是BroadcastReceiver類中的一個抽象方法,需要我們自己實現(xiàn)。該方法具有兩個參數(shù):Context對象和Intent對象。Context對象提供了與系統(tǒng)的交互功能,而Intent對象則包含了傳遞的廣播消息的詳細信息。
當(dāng)接收到與過濾器匹配的廣播消息時,系統(tǒng)會自動調(diào)用onReceive()方法,并將Context對象和Intent對象作為參數(shù)傳遞給該方法。在該方法中,我們可以根據(jù)Intent對象的內(nèi)容來進行相應(yīng)的處理,例如顯示通知、啟動服務(wù)、更新UI等操作。
以下是一個示例代碼,展示了如何注冊一個BroadcastReceiver并實現(xiàn)其onReceive()方法:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// 在這里寫處理廣播消息的代碼
// 可以根據(jù)Intent對象的內(nèi)容來進行相應(yīng)的操作
// 例如顯示通知、啟動服務(wù)、更新UI等
}
}
為了使BroadcastReceiver能夠接收到廣播消息,我們還需要在AndroidManifest.xml文件中進行相應(yīng)的配置,將接收器與過濾器進行關(guān)聯(lián)。例如:
<receiver android:name=".MyReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
</intent-filter>
</receiver>
以上示例代碼將會注冊一個名為MyReceiver的BroadcastReceiver,并且將其與BOOT_COMPLETED和ACTION_POWER_CONNECTED這兩個廣播消息進行關(guān)聯(lián)。當(dāng)系統(tǒng)啟動完成或者設(shè)備連接到電源時,系統(tǒng)會發(fā)送相應(yīng)的廣播消息,并觸發(fā)MyReceiver的onReceive()方法來處理這些消息。