繁体   English   中英

Android - 停止广播接收器被服务终止

[英]Android - Stop broadcast receiver being killed with service

我已经构建了一个应用程序,它实现了许多广播接收器,并根据用户设置在服务中注册它们。 该服务绑定到一个调用其某些方法的活动。 当一个广播接收器被调用时,它启动服务(或者如果它已经在运行则调用服务的启动)并传递一个字符串告诉服务该做什么。 我的问题是当活动被销毁(后退按钮)时,服务也被销毁,从而杀死广播接收器。

我知道我可以在清单中注册接收器,这意味着在调用它们以查看用户是否选择了该选项时进行检查。 然而,对应用程序至关重要的一个接收器是'android.intent.action.HEADSET_PLUG',它只能以编程方式注册。

所以我想我的问题是,当服务被销毁时,有没有办法让这个广播接收器保持活动状态? 如果没有,任何人都可以看到解决此问题的方法吗?

谢谢,罗布

我的问题是当活动被杀死时,服务被杀死,反过来杀死广播接收器。

如果“被杀”是指用户在设置应用中使用任务杀手或“强制停止”终止您的应用,则“已杀死”是适当的动词。 但是,您的整个过程都被“杀死” - 它不会遵循您在此处描述的事件链。

如果被“杀死”,则表示用户通过BACK按钮退出您的活动,这是因为您选择绑定到服务,而不是启动它。 如果您希望服务在活动的生命周期内继续执行,则必须使用startService() ,并确保有一些路径可以指示用户不再需要此服务,因此您知道何时调用stopService()

所以我想我的问题是,当服务被杀死时,有没有办法让这个广播接收器保持活动状态?

没有。

如果没有,任何人都可以看到解决此问题的方法吗?

开始您的服务,而不是(或可能除了)绑定到服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM