当android系统杀死我的应用程序时,如何让我的后台服务保持活动状态?

时间:2016-03-04 00:15:19

标签: android service background-service termination

我有一个后台运行的后台服务来跟踪屏幕开启和关闭事件。它的开头如下:

Intent intentService = new Intent(context, UnlockdService.class);
context.startService(intentService);

它在onStartCommand方法中返回Service.START_REDELIVER_INTENT。但是当android系统杀死app时,这个线程也会死掉。

我该如何预防?

2 个答案:

答案 0 :(得分:0)

我认为拥有BroadcastReceiver而不是服务是更好的解决方案。在你的onReceive中,你可以开始你的服务来完成它的工作,然后服务可以自我终止 - 如果你的工作是一次性的话,也许你可以使用IntentService。

如果您仍然需要服务,则可以通过在通知栏中发出永久通知来降低其被杀死的可能性,但从用户的角度来看,这可能会很糟糕。我强烈建议你去广播接收路线。

答案 1 :(得分:0)

解决方案非常简单:从START_STICKY返回onStartCommand()完成了这项工作。