如何在调用onTaskRemoved时阻止服务停止?

时间:2013-05-10 13:42:01

标签: android service android-service

我有一个问题,音乐Service在&#34后停止;滑动退出"正在ICS的最近的应用程序列表上执行。服务以START_REDELIVER_INTENT开始,几秒后自动重启,但我想阻止停止。

"滑动退出"行为通常是未知的,我的全部知识基于thread。 它包含一位Google员工的评论:

  当你滑掉最近的任务时,会发生这样的事情:(1)杀死应用程序的任何背景或空进程(参见http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html#Lifecycle这意味着什么),并且(2)使用新的http://developer.android.com/reference/android/app/Service.html#onTaskRemoved(android.content.Intent) API告诉应用程序的任何服务有关正在删除的任务,以便它可以做任何它认为合适的事情。

  

实际上,删除最近任务中的条目将会终止该进程存在的任何后台进程。它不会直接导致服务停止,但是有一个API可以让他们发现任务被删除以决定他们是否希望这意味着他们应该停止。这样,删除说电子邮件应用程序的最近任务不会导致它停止检查电子邮件。   如果你真的想完全停止一个应用程序,你可以长按最近的任务去转到应用程序信息,然后点击强制停止。停止是完全杀死应用程序 - 所有进程都被终止,所有服务都被停止,所有通知都被删除,所有警报被删除等等。在明确请求之前,不允许应用再次启动。

根据第二条评论,我的Service应该能够自己决定它想要做什么 - 相反,它会在没有任何操作的情况下停止并稍后重新启动。

任何想法如何处理它?使用START_STICKY完全相同......

1 个答案:

答案 0 :(得分:0)

将您的服务放入foreground。请注意,当服务在前台运行时,您必须显示正在进行的通知。