《Android》『BroadcastReceiver』- 廣播接收器的基本用法

《Android Developers 參考文獻》

➥BroadcastReceiver

 

《繼承架構》

extends Object


java.lang.Object

android.content.BroadcastReceiver

 

《簡單介紹》

BroadcastReceiver 又稱作『廣播接收器』,它是一種系統級的全範圍通知,而不是針對單一位置,這樣的好處是,我們不必明確指出需要回應這個廣播的位置,就可以驅動需要回應此廣播的事件,舉個簡單的例子,這就好比在學校裡,當訓導主任廣播尋找王小明時,訓導主任只需要告知要找的是幾年幾班的王小明(不用知道他在哪裡),儘管全校的同學都會聽到這則廣播,但會去訓導處報到的,就只有王小明,在 android 中,我們時常需要利用此一機制,讓程式能在任何時候,對於不同的廣播訊息做出正確的反饋。

 

《用法介紹》

要使用 BroadcastReceiver,首先我們必須註冊此 BroadcastReceiver 的 Action,因為 BroadcastReceiver 是透過 Intent 在傳遞的,我們利用 Intent 中的 Action 屬性,當作每個 BroadcastReceiver 的識別碼,這樣當我們接收到不同的廣播訊息時,只要判斷其intent 中的 Action 資訊,就可以知道此廣播所代表的意義。

➥ registerReceiver – 註冊廣播接收器

➥ unregisterReceiver – 撤銷廣播接收器

➥ sendBroadcast – 發送廣播

➥ onReceive – 接收廣播

註冊廣播接收器 – registerReceiver

要使用廣播功能,最一開始要做的就是註冊廣播接收器,也就是定義 Action,有兩種註冊方式,分為於 AndroidManifest.xml 中註冊(靜態註冊)以及於程式碼中註冊(動態註冊),程式碼如下 –

於 AndroidManifest.xml 中註冊

於程式碼中註冊

利用上面兩種方式, 我們為 BroadcastReceiver 註冊了一個 “tw.android.ACTION_01” 的字串,這個字串是我們自行定義的,它就像是這個廣播接收器的識別碼,用來在系統上眾多廣播訊號中做識別。

 

撤銷廣播接收器 – unregisterReceiver

若是在註冊廣播接收器的時候,我們是採用動態註冊的方式,也就是在程式碼中使用 registerReceiver 方法註冊,那麼我們亦可以於程式碼中,使用 unregisterReceiver 來撤銷已註冊的廣播接收器,程式碼如下 –

於程式碼中撤銷

 

發送廣播、接收廣播 – sendBroadcast、onReceive

註冊好廣播接收器以後,我們就可以開始執行發送與接收廣播的動作,其中接收的部分,我們必須自己實作一個繼承自 BroadcastReceiver 的自定義類別,以下直接以程式碼片段說明註冊、撤銷、發送與接收廣播的功能。

MainActivity.java

MyBroadcastReceiver.java

在以上程式碼中,我們宣告了三個按鈕,分別用來執行註冊、撤銷以及發送廣播的動作,並宣告了一個繼承自 BroadcastReceiver 的自定義類別 MyBroadcastReceiver,在裡面的 onReceive 方法處理接收到相應廣播識別碼時所要執行的動作,我們亦可以於 intent 中透過 putExtra 的方式夾帶參數進來。

賽肥膩膩

我們是低調到不行的肥膩夫妻檔,一路上一邊吵鬧一邊記錄著生活大小事,最近迷上了宅在家追劇,希望能透過文字將所有看過的影集好好紀錄,整理成屬於我們自己的回憶資料庫。

上 / 下一篇文章

臉書留言

一般留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *