android 靜態(tài)注冊(cè)系統(tǒng)廣播,退出后接收不到

? ? ? ? 在處理鎖屏和開(kāi)屏的監(jiān)聽(tīng)時(shí)候使用到了系統(tǒng)廣播,但效果令人坑爹,后來(lái)查詢了官方一些文檔,得知谷歌對(duì)第三方APP監(jiān)聽(tīng)系統(tǒng)廣播操作做了一些限制;

? ? ? ? 初步發(fā)現(xiàn)有如下幾個(gè)系統(tǒng)廣播,不能進(jìn)行靜態(tài)注冊(cè)的廣播:

? ? ? android.intent.action.SCREEN_ON

  android.intent.action.SCREEN_OFF

  android.intent.action.BATTERY_CHANGED

  android.intent.action.CONFIGURATION_CHANGED

  android.intent.action.TIME_TICK


原因(有以下幾種說(shuō)法,提供給大家參考):

  1.提高系統(tǒng)效率:這兩個(gè)事件是android的基本事件,如果大多數(shù)程序監(jiān)聽(tīng),會(huì)大大的拖慢整個(gè)系統(tǒng),所以android不鼓勵(lì)我們?cè)诤笈_(tái)監(jiān)聽(tīng)這兩個(gè)事件。

  2.因?yàn)橛行驈V播的優(yōu)先級(jí)問(wèn)題。以上這些廣播中,靜態(tài)注冊(cè)時(shí),系統(tǒng)的優(yōu)先級(jí)大于應(yīng)用,并且系統(tǒng)阻止了廣播的向下傳播。又因在Android 的廣播機(jī)制中,動(dòng)態(tài)注冊(cè)的優(yōu)先級(jí)是要高于靜態(tài)注冊(cè)優(yōu)先級(jí)的。故用動(dòng)態(tài)注冊(cè)代替靜態(tài)注冊(cè)。

  3.系統(tǒng)安全問(wèn)題。

解決方案(以android.intent.action.BATTERY_CHANGED為例):

  動(dòng)態(tài)注冊(cè)不能放到activity中,因?yàn)閯?dòng)態(tài)注冊(cè)必須要在activity消亡的時(shí)候調(diào)用unregisterReceiver,會(huì)隨著activity的解鎖消失而不能再接收廣播。一般的辦法是在activity起來(lái)后馬上start一個(gè)service,這個(gè)service里動(dòng)態(tài)注冊(cè)一個(gè)broadcastreceiver,service必須常駐在系統(tǒng)內(nèi),所以要接收開(kāi)機(jī)消息android.intent.action.BOOT_COMPLETED。

?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,109評(píng)論 25 709
  • 2.1 Activity 2.1.1 Activity的生命周期全面分析 典型情況下的生命周期:在用戶參與的情況下...
    AndroidMaster閱讀 3,281評(píng)論 0 8
  • 謹(jǐn)以文章記錄學(xué)習(xí)歷程,如有錯(cuò)誤還請(qǐng)指明。 前言 我們上學(xué)時(shí)都有過(guò)這樣的經(jīng)歷,當(dāng)我們?cè)诨疖?chē)站列車(chē)候車(chē)室中等待時(shí),每當(dāng)...
    whd_Alive閱讀 7,837評(píng)論 2 13
  • 前言 上一篇文章深入理解MeasureSpec我們分析了View的測(cè)量規(guī)格,根據(jù)MeasureSpec才能測(cè)量出V...
    Android天之驕子閱讀 760評(píng)論 0 0
  • 思維導(dǎo)圖,可謂已經(jīng)風(fēng)靡于文化人之間了,如果你聽(tīng)說(shuō)過(guò)還沒(méi)用過(guò),那你一定要看看此文;如果用過(guò)了,但是沒(méi)感受到效果,那你...
    自在三昧閱讀 3,685評(píng)論 0 0

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