經過分析測試發現,如果應用程式安裝上始終沒有被開啟過,那麼在android啟動時,該應用無法接收到開機啟動廣播android.permission.receive_boot_completed。
android 3.1的更新文件中已經做了說明。
下面是引自android官方api說明,位址
官方文件的部分翻譯理解
啟動停止程式控制
從android 3.1開始,系統的軟體包管理器跟蹤處於停止狀態(stopped state)的應用程式,控制其啟動後台程序和其他應用程式提供了一種手段。
需要注意的是應用程式的停止狀態(stopped state)和activity的停止狀態是不一樣的。該系統可以分別管理這兩種停止狀態。
該平台定義了兩個新的intent的flag,控制傳送者指定的intent是否應該被允許啟用停止的應用程式的元件。
當兩個flag都不設定或都設定的時候,預設操作是flag_include_stopped_packages。
請注意,系統會將flag_exclude_stopped_packages
新增到所有的廣播intent中去。它這樣做是為了防止廣播無意中的或不必要地開展元件的stoppped應用程式的後台服務。後台服務或應用程式可以通過向廣播intent新增flag_include_stopped_packages
標誌來喚醒處於停止狀態(stopped state)的應用程式。
應用程式處於停止狀態情況有兩種:一種是他們是第一次安裝,但尚未啟動 ;另一種是在管理應用程式中由使用者手動停止。
Android4 0系統接收不到廣播的問題解析
在3.1之後,系統的package manager增加了對處於 stopped state 應用的管理,這個stopped和activity生命週期中的stop狀態是完全兩碼事,指的是安裝後從來沒有啟動過和被使用者手動強制停止的應用,與此同時系統增加了2個flag flag include stop...
Android4 0系統接收不到廣播的問題解析
在3.1之後,系統的package manager增加了對處於 stopped state 應用的管理,這個stopped和activity生命週期中的stop狀態是完全兩碼事,指的是安裝後從來沒有啟動過和被使用者手動強制停止的應用,與此同時系統增加了2個flag flag include stop...
Android小公尺手機接收不到開機廣播(個人筆記)
這幾天在做一專案,開機即開啟服務,在服務裡檢測裝置的系統版本是不是最新的,有新版本時,彈乙個對話方塊提醒使用者更新系統。好死不死,真機我用的小公尺2進行的測試,然後問題來了。具體的怎麼開機就能啟動服務不是很難,新增許可權,註冊開機廣播,註冊服務,按部就班的來就行,在我這個筆記中不再多記錄,貼乙個 裡...