靜態(tài)注冊BroadcastReceiver的那些事

眾所周知有兩種方式去注冊BroadcastReceiver备恤,下面主要談?wù)勳o態(tài)注冊方式露泊。

先拋出問題:

  1. 我想要 即使我的APP退出后仍然可以接收到廣播,從而做我想做的事旅择。
  2. 我想要 我的APP一安裝就可以接收到廣播惭笑,不用非得啟動一下。

靜態(tài)方式注冊receiver生真,不就是解決上述問題的么沉噩?問動態(tài)注冊和靜態(tài)注冊的區(qū)別,我們毫不猶豫的就回答說靜態(tài)方式注冊在APP退成后仍然能接收到廣播柱蟀。但是事實真的是這樣么川蒙?

show me the code !

靜態(tài)注冊receiver

包名為cn.com.ada的ReceiverApp中通過靜態(tài)方式注冊了廣播接收者MyReceiver,監(jiān)聽action為cn.com.ada.test的廣播长已。

<receiver
    android:name="cn.com.ada.MyReceiver"
    android:enabled="true"
    android:exported="true">
        <intent-filter>
            <action android:name="cn.com.ada.test"/>
        </intent-filter>
</receiver>

發(fā)送廣播

包名為cn.com.ada1的SendApp中發(fā)送廣播畜眨。

Intent intent = new Intent("cn.com.ada.test");
sendBroadcast(intent);

測試發(fā)現(xiàn):

  • 當(dāng)初次安裝后,如果不啟動ReceiverApp术瓮,是收不到廣播的康聂。
  • 在設(shè)置應(yīng)用管理中的應(yīng)用詳情頁點擊強制停止或者
    使用 adb shell am force-stop package-name命令停止ReceiverApp后,也是收不到廣播的胞四。

這是因為

從 Android 3.1 開始蕊连,系統(tǒng)為所有的廣播都默認添加了FLAG_EXCLUDE_STOPPED_PACKAGES 標志。所有處于停止狀態(tài)的應(yīng)用將無法接受到該標志的廣播。注意囚聚,只有兩種情況下應(yīng)用才會處于停止狀態(tài):

  1. 應(yīng)用安裝后未運行
  2. 應(yīng)用被手動(設(shè)置-應(yīng)用-強制停止)或者被其他應(yīng)用強制停止了
    如果需要啟動處于停止狀態(tài)的應(yīng)用,則只要為Intent添加FLAG_INCLUDE_STOPPED_PACKAGES 標記即可星压。
Intent intent = new Intent("cn.com.ada.test");
intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(intent);

這樣才算真正實現(xiàn)了靜態(tài)注冊receiver优质,程序退出后仍然可以接收廣播演怎。


TODO

測試中發(fā)現(xiàn)一個問題淑际,ReceiverApp運行時崩潰春缕,彈出“ReceiverApp停止運行”的提示框女阀,這時點擊確定后,依然可以接收廣播惫确。但是,有時不會彈出提示框直接閃退揍鸟,這時就接收不到廣播了前翎。不知是何原因港华?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尊流,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖冀瓦,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肄程,死亡現(xiàn)場離奇詭異拓提,居然都是意外死亡寺惫,警方通過查閱死者的電腦和手機歉摧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事泳炉》阏悖” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵挺尾,是天一觀的道長魂挂。 經(jīng)常有香客問我,道長敏沉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮要尔,結(jié)果婚禮上饲握,老公的妹妹穿的比我還像新娘救欧。我一直安慰自己笆怠,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布兽赁。 她就那樣靜靜地躺著蜂莉,像睡著了一般赘淮。 火紅的嫁衣襯著肌膚如雪梢卸。 梳的紋絲不亂的頭發(fā)上走诞,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音蛤高,去河邊找鬼蚣旱。 笑死,一個胖子當(dāng)著我的面吹牛襟齿,可吹牛的內(nèi)容都是我干的姻锁。 我是一名探鬼主播枕赵,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼猜欺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拷窜?” 一聲冷哼從身側(cè)響起开皿,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤涧黄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后赋荆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體笋妥,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年窄潭,在試婚紗的時候發(fā)現(xiàn)自己被綠了春宣。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡嫉你,死狀恐怖月帝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情幽污,我是刑警寧澤嚷辅,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站距误,受9級特大地震影響簸搞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜准潭,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一趁俊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧刑然,春花似錦则酝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至武鲁,卻和暖如春爽雄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背沐鼠。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工挚瘟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人饲梭。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓乘盖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親憔涉。 傳聞我的和親對象是個殘疾皇子订框,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 本文轉(zhuǎn)載自http://www.cnblogs.com/lwbqqyumidi/p/4168017.html 1....
    Ernest_Chang閱讀 707評論 0 3
  • 前言 本來想寫一下廣播的,發(fā)現(xiàn)查閱后有整理的不錯的兜叨,只好轉(zhuǎn)載圖個簡便穿扳,日后好復(fù)習(xí)轉(zhuǎn)載:http://www.cnb...
    提升即效率閱讀 1,386評論 0 10
  • 1.廣播的分類 (1)按照發(fā)送的方式分類 標準廣播是一種異步的方式來進行傳播的衩侥,廣播發(fā)出去之后,所有的廣播接收者幾...
    曹豐斌閱讀 34,144評論 0 22
  • android四大組件:Activity,Service,BroadcastReceiver和ContentPro...
    毹毹閱讀 2,438評論 0 9
  • Android中的廣播 廣播接受器矛物,可以比喻成收音機茫死。而廣播則可以看成電臺。 Android系統(tǒng)內(nèi)部相當(dāng)于已經(jīng)有一...
    sunhaiyu閱讀 3,204評論 1 0