服务是否可以被任务杀手杀死

时间:2011-03-18 17:11:51

标签: android

我正在写一个内置服务的自动扬声器应用程序,并听取手机状态的变化。

我希望服务应该一直存在,不能被杀死。

然而,我发现如果我使用一些任务杀手来杀死我的应用程序,那么我的监听器将无法工作几秒钟。

虽然我的应用程序似乎会在几秒钟后自动重启并再次运行。

为什么服务仍然会被任务杀手杀死?

服务就像一个活动,只是没有UI,能够自动重启吗?

感谢您的回答。

3 个答案:

答案 0 :(得分:3)

当您需要资源时,您不能免除您的服务被用户终止或由操作系统自动终止。

你能做的最好的事情就是尝试编写代码以补偿重启,但当然不要写,好像你的服务将永远无例外地运行。

修改

Android开发人员文档Managing the Lifecycle of a Service提供了有关从停止恢复以及何时调用回调挂钩的有用信息。

答案 1 :(得分:2)

将此技巧添加到您的服务onCreate:

startForeground(R.string.app_name, new Notification());

它将阻止服务关闭内存不足,任务查杀等。

答案 2 :(得分:0)

因为在他/她想要的时候取消用户结束流程的能力是错误​​的。而是尝试编写一个解决方案,以便在服务关闭的情况下,XXXXXX发生。