簡體   English   中英

即使在應用崩潰時,廣播接收器如何正常工作

[英]How a broadcast receiver can function normally even on app crash

問題場景:我有一個帶有靜態注冊的廣播接收器的android應用程序,該廣播接收器的AIRPLANE_MODE注冊的意圖過濾器工作正常。 當我打開飛行模式時,將顯示吐司。 當我強制停止我的應用程序時,廣播接收器不起作用,這是預期的結果。 但是現在當我的應用崩潰時,廣播接收器仍然顯示吐司。 所以,我的問題是,為什么我的廣播接收器即使在應用崩潰時也能正常工作,而當我強制停止應用時卻被破壞了。 如果有人可以清楚地了解App Force Stop方案,這將非常有幫助。

在您的應用程序中,您有4個啟動應用程序的點: BroadcastReceiverActivityServiceContentProvider

因此,如果您在AndroidManifest中注冊了BroadcastReceiver,即使您強制停止應用程序,實際上也會在BroadcastReceiver中獲得回調,因為這是啟動應用程序的關鍵。 實際上,您可以通過以下代碼以編程方式禁用BroadcastReceiver:

ComponentName component = new ComponentName(context, YourReceiver.class); 

//Disable BroadcastReceiver
context.getPackageManager().setComponentEnabledSetting(component,  PackageManager.COMPONENT_ENABLED_STATE_DISABLED , PackageManager.DONT_KILL_APP);

//Enable BroadcastReceiver
context.getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_ENABLED , PackageManager.DONT_KILL_APP);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM