廣播

純粹是個人學(xué)習(xí)總結(jié),如有不對的地方請吐槽。

廣播有兩種注冊方式
靜態(tài)注冊:在AndroidManifest.xml 中注冊不依賴應(yīng)用程序,即應(yīng)用程序關(guān)閉后依然可以接受廣播,
動態(tài)注冊:在activity中注冊,必須在activity結(jié)束時注銷廣播

BroadcastReceiver 生命周期只有 10 秒左右,如果在 onReceive()內(nèi)做超過 10 秒內(nèi)的事情,就會報ANR(Application Not Response)程序無響應(yīng)的錯誤信息,每次接收廣播都會創(chuàng)建一個新的對象

有序廣播:
按照接收者聲明的優(yōu)先級別(聲明在intent-filter 元素的 android:priority 屬性中,數(shù)越大優(yōu)先級別越高,取值范圍:-1000 到 1000(其實最大可以為 int 最大值即:2147483647)。也可以調(diào)用 IntentFilter 對象的 setPriority()進行設(shè)置),被接收者依次接收廣播,前面的接收者有權(quán)終止廣播

Context.sendBroadcast()發(fā)送的是普通廣播,所有訂閱者都有機會獲得并進行處理。
Context.sendOrderedBroadcast()發(fā)送的是有序廣播

粘性廣播:
這個 api需要權(quán)限 android.Manifest.permission.BROADCAST_STICKY
粘性廣播的特點是 Intent 會一直保留到廣播事件結(jié)束,而這種廣播也沒有所謂的 10 秒限制
Context.sendStickyBroadcast()是發(fā)送粘性廣播

ordered 廣播(有序廣播):靜態(tài)接收器的優(yōu)先級》動態(tài)接收器的優(yōu)先級

非 ordered 廣播:動態(tài)接收器優(yōu)先級》靜態(tài)接收器優(yōu)先級

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

相關(guān)閱讀更多精彩內(nèi)容

  • 廣播接收器 是Android的四大組件之一,可見廣播在Android中的重要性; 1. 什么是廣播? 廣播(Bro...
    Lost_Robot閱讀 2,045評論 2 10
  • 目錄 一.概述 二.注冊廣播 三.發(fā)送廣播 四.處理廣播 五.廣播的優(yōu)先級 一、概述 廣播(Broadcast)機...
    MryU93閱讀 4,512評論 0 6
  • 諸多無奈,最近在改一個項目的bug的時候,腦子老是一片空白,可能是最近腦子不夠用,總之,好多東西忘了,閱讀一些別人...
    狗子王1948閱讀 7,839評論 6 53
  • 前言 本來想寫一下廣播的,發(fā)現(xiàn)查閱后有整理的不錯的,只好轉(zhuǎn)載圖個簡便,日后好復(fù)習(xí)轉(zhuǎn)載:http://www.cnb...
    提升即效率閱讀 1,458評論 0 10
  • 我從小就羨慕校園廣播中的優(yōu)美的聲音,夢想著自己能主持播音,用聲音來感染更多的人。2016年10月,我一激動,報名了...
    85后栗子閱讀 1,974評論 2 0

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