Java BroadcastReceiver被系统终止或注销

Java BroadcastReceiver被系统终止或注销,java,android,broadcastreceiver,Java,Android,Broadcastreceiver,我知道这是常见的问题,常见的解决方案是在清单中注册意图过滤器,而不是在代码中注册。但是清单注册不适用于某些操作,例如android.intent.action.SCREEN\u OFF和android.intent.action.SCREEN\u ON 在我在代码中取消注册之前,如何确保该接收器能够正常工作 在我在代码中取消注册之前,如何确保该接收器能够正常工作 你不能。任何注册接收器的组件本身都可能由于不活动/老化而被销毁,以回收RAM供其他操作系统使用。另外,当然,用户可以随时通过任务杀手和

我知道这是常见的问题,常见的解决方案是在清单中注册意图过滤器,而不是在代码中注册。但是清单注册不适用于某些操作,例如
android.intent.action.SCREEN\u OFF
android.intent.action.SCREEN\u ON

在我在代码中取消注册之前,如何确保该接收器能够正常工作

在我在代码中取消注册之前,如何确保该接收器能够正常工作

你不能。任何注册接收器的组件本身都可能由于不活动/老化而被销毁,以回收RAM供其他操作系统使用。另外,当然,用户可以随时通过任务杀手和设置应用程序摆脱任何组件


最接近的方法是使用一个也调用
startForeground()
并在状态栏中放置
通知的服务。同样,用户仍然可以在任何需要的时候摆脱它。然后,您必须说服用户,您的应用程序的价值值得永久服务的成本和
通知的屏幕空间。我相信我可以使用alarm manager在给定的时间段内重新注册接收器。无论如何,谢谢你提供的信息。@jacek:如果用户通过任务杀手/强制停止来摆脱你,那就没用了,因为这也会删除所有预定的警报。我知道,但这没关系。最重要的是,我不希望接收器自动死亡。