Android廣播機(jī)制

QQ截圖20181210091750.png

廣播分為標(biāo)準(zhǔn)廣播 和 有序廣播
一、標(biāo)準(zhǔn)廣播

完全異步執(zhí)行的廣播,當(dāng)發(fā)出廣播后,廣播接收器幾乎會(huì)在同一時(shí)刻接收到廣播消息,所以沒有先后順序可言,效率比較高,無法被截?cái)唷?div id="u0z1t8os" class="image-package">
1.png

二、有序廣播
同步執(zhí)行的廣播,廣播發(fā)出后,會(huì)有一個(gè)廣播接收器接收廣播消息,當(dāng)這個(gè)廣播接收器中的邏輯執(zhí)行完畢后廣播才會(huì)繼續(xù)傳遞。有先后順序,優(yōu)先級(jí)較高的接收器先收到廣播消息并且可以截?cái)嗾趥鬟f的廣播,使得后面的接收器無法收到廣播消息。
2.png

三、系統(tǒng)廣播
Android內(nèi)置很多系統(tǒng)級(jí)別廣播,如手機(jī)開機(jī)后發(fā)一條廣播,電池電量發(fā)生變化發(fā)一條廣播等等。
1.動(dòng)態(tài)注冊(cè)廣播
在activity中通過代碼動(dòng)態(tài)注冊(cè)廣播,定義類extends BroadcastReceiver,重寫onReceiver方法,通過registerReceiver注冊(cè)廣播。在onDestory方法中通過unregisterReceiver取消注冊(cè)。自由控制注冊(cè)和取消,具有靈活性,缺點(diǎn)是程序啟動(dòng)后才能接受廣播。


3.png

2.靜態(tài)注冊(cè)
需要在androidManifest.xml文件中聲明
4.png

6.png

7.png

四、自定義廣播
1.發(fā)送標(biāo)準(zhǔn)廣播

類繼承broadcastreceiver,重寫onreceiver方法,在AndroidManifest文件中聲明


8.png

10.png

發(fā)送廣播:
11.png

2.發(fā)送有序廣播 (廣播是一種可跨進(jìn)程的通信方式)應(yīng)用程序內(nèi)發(fā)出廣播,其他程序也可以接收到廣播信息。如圖:
14.png

12.png

13.png

五、本地廣播(出于安全性問題,只能在程序內(nèi)部傳遞)
優(yōu)勢(shì):正在發(fā)送的廣播不會(huì)離開我們的程序,不必?fù)?dān)心數(shù)據(jù)泄露。其他程序無法將廣播發(fā)送到我們程序內(nèi)部,不必?fù)?dān)心安全漏洞。發(fā)送本地廣播比系統(tǒng)全局廣播更高效。
15.png

16.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容