[英]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.