Android - 即使应用程序被终止或设备重新启动,也可以在后台运行服务

时间:2014-10-06 02:15:30

标签: android service broadcastreceiver

我希望在后台运行服务,即使我的应用程序被杀死了。我使用android.intent.action.USER_PRESENT事件,但该服务仅在屏幕解锁时运行。我尝试了android.intent.action.BOOT_COMPLETED,但下载应用后需要至少重启一次手机。

理想情况下,我会在所有X分钟内启动我的服务,例如使用ACTION_TIME_TICK。然后在开始维修之前检查条件(电池电量,网络连接......)。

问题是此类事件无法从manifest.xml声明和收听,而是在活动中声明,这意味着该应用仍然存在。

有没有办法做我想做的事呢?

1 个答案:

答案 0 :(得分:2)

使用look at AlarmManager,您可以使用它来确保您的服务还活着,如果没有,请根据需要启动/重启。

您可以在安装后第一次打开应用程序时注册AlarmManager。从那时起,如果用户重新启动,请使用另一个(第二个)侦听AlarmManager的引导服务,使用android.intent.action.BOOT_COMPLETED注册您的服务。

可能还有其他considerations with device sleep,以及您在后台服务中执行的工作量/种类,take a look at this lib and notes as well

AlarmManager可以持续确保您的后台服务健康。