[英]how can i register TIME_TICK event broadcast receiver for android app even if app is running or not
[英]How a broadcast receiver can function normally even on app crash
問題場景:我有一個帶有靜態注冊的廣播接收器的android應用程序,該廣播接收器的AIRPLANE_MODE注冊的意圖過濾器工作正常。 當我打開飛行模式時,將顯示吐司。 當我強制停止我的應用程序時,廣播接收器不起作用,這是預期的結果。 但是現在當我的應用崩潰時,廣播接收器仍然顯示吐司。 所以,我的問題是,為什么我的廣播接收器即使在應用崩潰時也能正常工作,而當我強制停止應用時卻被破壞了。 如果有人可以清楚地了解App Force Stop方案,這將非常有幫助。
在您的應用程序中,您有4個啟動應用程序的點: BroadcastReceiver , Activity , Service , ContentProvider 。
因此,如果您在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.