安卓系统-即使应用程序被关闭或设备重新启动,也可以在后台运行服务



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

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

问题是这样的事件不能从manifest.xml中声明和侦听,而是在活动中,这意味着应用程序是"活动的"。

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

看看AlarmManager,您可以使用它来确保您的服务处于活动状态,如果没有,则根据需要启动/重新启动。

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

设备睡眠可能还有其他考虑因素,以及你在后台服务中所做的工作量/种类,看看这个库和注意事项以及

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

相关内容

最新更新