android的廣播機制,在我們開發的過程中,有很多要用到的地方。
廣播機制,說白了就是乙個傳送廣播,乙個接受廣播。
我還是拿我自己的例子來進行說明吧。
我需要對自己當前的網路進行乙個判斷。如果當前網路環境斷開連線了,或者發生變化什麼的。
在這個時候,我們傳送乙個廣播,然後當我們只要接受到這條特定的廣播訊息以後,彈出toast,提示當前網路斷開。就這麼乙個例子吧。
具體還是邊上**,邊說明吧。
1.第一種方法就是配置檔案進行註冊廣播,然後廣播接收器接受廣播:
我做的是全域性的廣播。 所以我們首先在我們的manifest.xml中,對廣播進行註冊宣告:
android
:name=
".broadcast.connectionchangereceiver"
>
android
:name=
"android.net.conn.connectivity_change"
/>
action就是我們廣播的名字,也就是特定的標識。然後connectionchangereceiver就是我們自己寫的廣播接收器。
白話一下就是,當我們自定義的這個receiver接受到action的廣播的時候,執行什麼樣的操作。
個人理解,不對的地方還請大家給予指教。
接下來就是我們的receiver的接收廣播後的**:
public class connectionchangereceiver extends broadcastreceiver else}}
這就是乙個簡單的廣播傳送接收處理邏輯。
2.第二種方法就是所謂的動態註冊廣播,傳送廣播的方法了。
首先,我們註冊廣播接收器:
private downloadedreceiver receiver;
receiver = new downloadedreceiver();this.registerreceiver(receiver
, new intentfilter(configutil.action_downloading
));
宣告廣播接收器,然後進行註冊。
動態註冊時候要注意: registerreceiver中的兩個引數,乙個是我們的接收器,乙個則是過濾器。
filter尤其說明一下:只有我們傳送的廣播是configutil.action_downloading的時候,我們才能接收到。
接下來就要說一下我們的傳送廣播的地方了。
傳送廣播,在我們需要的地方做如下操作:
intent intent = newintent(configutil.action_downloading
);intent.putextra("status"
, status);
intent.putextra("title"
, title);
sendbroadcast(intent);
一方面,過濾器必須要一致。也就是new intent(configutil.action_downloading),這個也就是我們的過濾標識,即action。
然後putextra進行資料的攜帶。
最後就可以進行sendbroadcast了。傳送廣播攜帶我們的intent。裡面有action的過濾,有攜帶的資料。
那麼廣播接收的具體操作呢?
來了:
//廣播接收器
private class downloadedreceiver extends broadcastreceiver
int downloadstatus = intent.getintextra("status"
, paramsutil.invalid
); }
}
這就是我們的廣播接收器的具體操作啦。因為註冊廣播的時候已經與傳送廣播的過濾進行了匹配,所以具體的操作以及putextra的資料都可以在這裡獲取到。
這就是廣播的傳送接收的兩種模式了吧。我做了一些白話方面的解釋。網上已經有很多了,個人純屬自己的記錄,能看的更加明了。
廣播的作用,大家也可以進行聯想,其實就是可以讓我們在程式中進行傳輸資訊的一種機制。大家可以多方面運用。對廣播的了解也是比較重要的。
android 廣播機制
1 首先說andoid 廣播分為系統的和 自定義的 2 註冊方式呢,也是兩種,1 靜態註冊,在manifest.xml 檔案中註冊的 2 動態註冊,用filter 區分 不說了 佔 首先是動態註冊 broadreceiver re new broadreceiver 自己定義的接收器 intentf...
android廣播機制
android中系統事件傳送乙個廣播訊息,如果應用監聽系統廣播就會收到。普通廣播 也叫無序廣播 有序廣播 可以被攔截 粘性廣播 等待被處理 廣播註冊有兩種方式,動態註冊和靜態註冊。註冊叫做動態註冊,比需應用啟動 並且與相應activity繫結 才有效,靜態註冊不管應用是否啟動都有效 是有點流氓 廣播...
android 廣播機制
192.168.0.子網掩碼是 255.255.255.0,那麼這個網路的廣播位址就是 192.168.0.255。廣播資料報會被傳送到同一網路上的所有埠,這樣在該網路中的每台主機都將會收到這條 廣播。為了方便於進行系統級別的訊息通知,android 也引入了一套類似的廣播訊息機制。相 比於我前面舉...