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