我有一个后台运行的后台服务来跟踪屏幕开启和关闭事件。它的开头如下:
Intent intentService = new Intent(context, UnlockdService.class);
context.startService(intentService);
它在onStartCommand方法中返回Service.START_REDELIVER_INTENT
。但是当android系统杀死app时,这个线程也会死掉。
我该如何预防?
答案 0 :(得分:0)
我认为拥有BroadcastReceiver而不是服务是更好的解决方案。在你的onReceive中,你可以开始你的服务来完成它的工作,然后服务可以自我终止 - 如果你的工作是一次性的话,也许你可以使用IntentService。
如果您仍然需要服务,则可以通过在通知栏中发出永久通知来降低其被杀死的可能性,但从用户的角度来看,这可能会很糟糕。我强烈建议你去广播接收路线。
答案 1 :(得分:0)
解决方案非常简单:从START_STICKY
返回onStartCommand()
完成了这项工作。