繁体   English   中英

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

[英]how to keep my background service active when android system kills my app?

我有一个后台服务,该服务在后台运行以跟踪屏幕打开和关闭事件。 其开始如下:

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

它在onStartCommand方法中返回Service.START_REDELIVER_INTENT 但是,当android系统杀死应用程序时,该线程也会死亡。

我该如何预防?

我认为使用BroadcastReceiver而不是Service是更好的解决方案。 然后,在onReceive中,您可以启动服务以完成其工作,然后该服务可以自行终止-如果您的工作是一次性的,则可以使用IntentService。

如果仍然需要服务,则可以通过在通知栏中显示永久通知来减少被杀死的可能性,但是从用户的角度来看这可能很糟糕。 我强烈建议您使用广播接收器路线。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM