Android4 0系統接收不到廣播的問題解析

2021-09-11 00:25:56 字數 1885 閱讀 4129

在3.1之後,系統的package manager增加了對處於「stopped state」應用的管理,這個stopped和activity生命週期中的stop狀態是完全兩碼事,指的是安裝後從來沒有啟動過和被使用者手動強制停止的應用,與此同時系統增加了2個flag:flag_include_stopped_packages和flag_exclude_stopped_packages ,來標識乙個intent是否啟用處於「stopped state」的應用。當2個flag都不設定或者都進行設定的時候,採用的是flag_include_stopped_packages的效果。

有了上面的新機制之後,google覺得給所有的廣播intent預設加上flag_exclude_stopped_packages會非常的cooooool,能在一定程度上避免流氓軟體、病毒啊幹壞事,還能提高效率,就導致了本文題目中說的問題,receive_boot_completed廣播如果使用者沒有執行過應用,就不會響應了。

不過google還是留了點餘地,對於自定義的廣播我們可以通過

setflags(intent.flag_include_stopped_packages);這個方法來喚醒處於「stopped state」的程式,也就是使用者自己寫的廣播intent可以控制這個機制,但是系統自帶的廣播intent,由於不能修改,就只能接受這個現實了

例如:intent startintent = new intent();

startintent.putextra("pkg", getpackagename());

startintent.setaction("com.lenovo.speechcamera.start");

startintent.setflags(intent.flag_include_stopped_packages);

sendbroadcast(startintent);

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!

在3.1之後,系統的package manager增加了對處於「stopped state」應用的管理,這個stopped和activity生命週期中的stop狀態是完全兩碼事,指的是安裝後從來沒有啟動過和被使用者手動強制停止的應用,與此同時系統增加了2個flag:flag_include_stopped_packages和flag_exclude_stopped_packages ,來標識乙個intent是否啟用處於「stopped state」的應用。當2個flag都不設定或者都進行設定的時候,採用的是flag_include_stopped_packages的效果。

有了上面的新機制之後,google覺得給所有的廣播intent預設加上flag_exclude_stopped_packages會非常的cooooool,能在一定程度上避免流氓軟體、病毒啊幹壞事,還能提高效率,就導致了本文題目中說的問題,receive_boot_completed廣播如果使用者沒有執行過應用,就不會響應了。

不過google還是留了點餘地,對於自定義的廣播我們可以通過

setflags(intent.flag_include_stopped_packages);這個方法來喚醒處於「stopped state」的程式,也就是使用者自己寫的廣播intent可以控制這個機制,但是系統自帶的廣播intent,由於不能修改,就只能接受這個現實了

例如:intent startintent = new intent();

startintent.putextra("pkg", getpackagename());

startintent.setaction("com.lenovo.speechcamera.start");

startintent.setflags(intent.flag_include_stopped_packages);

sendbroadcast(startintent);

Android4 0系統接收不到廣播的問題解析

在3.1之後,系統的package manager增加了對處於 stopped state 應用的管理,這個stopped和activity生命週期中的stop狀態是完全兩碼事,指的是安裝後從來沒有啟動過和被使用者手動強制停止的應用,與此同時系統增加了2個flag flag include stop...

Android4 0有時接收不到開機廣播

經過分析測試發現,如果應用程式安裝上始終沒有被開啟過,那麼在android啟動時,該應用無法接收到開機啟動廣播android.permission.receive boot completed。android 3.1的更新文件中已經做了說明。下面是引自android官方api說明,位址 官方文件的部...

Android 4 0 事件系統

2013 01 31 15 13 295人閱讀收藏 舉報 事件系統簡介 1.android 事件系統,它解決的是如何將按鍵 滑鼠 觸屏訊息從收集到最終將之傳送到焦點視窗進行處理的問題 2.android 事件處理 流程分兩部分,一部分是從 framework 開始,如何 從底層讀取事件並分發 給ac...