Android的 - 停止广播接收器被杀害与服务(Android - Stop broadcast

2019-07-29 05:05发布

我建立了一个实现了一些广播接收机,并根据用户设置的服务中注册他们的应用程序。 该服务绑定到它调用的一些方法的活动。 当广播接收器被称为启动服务(或称OnStart中,如果它已经在运行的服务),并把它串告诉服务做什么。 当活动被销毁(后退按钮)的服务也被破坏而这又杀死广播接收机我的问题是。

我知道我可以在清单寄存器接收器这将意味着在做检查的时候都来看望如果用户选择了该选项。 但是对应用非常关键的接收器中的一个是“android.intent.action.HEADSET_PLUG”,其只能被编程注册。

所以我想我的问题是,有没有办法把这个广播接收器活跃时,该服务被破坏? 如果不是任何人都可以看到这个问题的解决方法?

谢谢,罗布

Answer 1:

我的问题是当活动被杀害的服务被杀害而这又杀死广播接收机。

如果“封杀”你的意思是用户终止了与在设置应用程序任务杀手或“强制停止”你的应用程序,然后“杀”是合适的动词。 然而,你的整个过程被“封杀” - 这并不意味着你在这里描述的事件链。

如果“封杀”你的意思是用户通过BACK按钮退出你的活动,那是因为你当选为绑定到服务,而不是启动它。 如果您希望该服务继续执行过去活动的一生中,你必须使用startService()并确保有一些由用户可以表明,他们不再需要这种服务的路径,让你知道什么时候调用stopService()

所以我想我的问题是,有没有办法把这个广播接收器活跃时,该服务被杀害?

没有。

如果不是任何人都可以看到这个问题的解决方法?

启动您的服务,而不是(也可能是除)绑定到服务。



文章来源: Android - Stop broadcast receiver being killed with service