Android 任务杀手可以杀死服务吗

Android 任务杀手可以杀死服务吗,android,Android,我正在编写一个内置服务的自动扬声器应用程序,并收听手机状态的变化 我希望该服务应该一直存在,并且不能被终止 然而,我发现,如果我使用一些任务杀手来杀死我的应用程序,我的侦听器将在几秒钟内无法工作 虽然我的应用程序似乎会在几秒钟后自动重启并再次工作 为什么该服务仍然会被任务杀手杀死 服务是否与活动一样,只是没有UI,并且能够自动重新启动 感谢您的回答。当需要资源时,您不能免除用户或操作系统自动终止您的服务 您所能做的最好的事情就是尝试编写代码来补偿重新启动,但一定不要编写得好像您的服务将无一例外地

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

我希望该服务应该一直存在,并且不能被终止

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

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

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

服务是否与活动一样,只是没有UI,并且能够自动重新启动


感谢您的回答。

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

您所能做的最好的事情就是尝试编写代码来补偿重新启动,但一定不要编写得好像您的服务将无一例外地永远运行

编辑


Android开发者文档提供了关于从停止恢复以及何时调用回调挂钩和何时不调用回调挂钩的有用信息。

,因为剥夺用户在需要时结束进程的能力是错误的。相反,尝试编写一个变通方法,以便在服务关闭时,发生XXXXXX。

在创建服务时将此技巧添加到您的服务中:

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

<>这将阻止服务在低内存、任务杀死等方面关闭。

你能告诉我如何补偿这个问题,并避免那几秒钟的空白吗?谢谢。@dong221实际上,您无法采取任何措施来弥补损失的时间,根据关机类型,时间可以是几秒钟或更长。我建议阅读Android开发者关于服务生命周期的文档,我会用链接编辑我的答案。