我想保持服务在后台运行,即使我的应用程序被终止。我在用着android.intent.action.USER_PRESENT
事件,但该服务仅在屏幕解锁时运行。我试过android.intent.action.BOOT_COMPLETED
但下载应用程序后至少需要重新启动手机一次。
理想情况下,我会使用 X 分钟开始我的服务ACTION_TIME_TICK
例如。然后在启动服务之前检查条件(电池电量、网络连接...)。
问题是此类事件无法声明和监听manifest.xml
而是在 Activity 中,暗示应用程序处于“活动状态”。
有办法做我想做的事吗?
take a look at AlarmManager http://developer.android.com/reference/android/app/AlarmManager.html,您可以使用它来确保您的服务正常运行,如果没有,请根据需要启动/重新启动。
您可以在应用程序安装后首次打开时注册 AlarmManager。从那时起,如果用户重新启动,请注册您的服务AlarmManager
使用另一个(第二个)引导服务来监听android.intent.action.BOOT_COMPLETED
.
可能还有其他设备睡眠的注意事项 https://stackoverflow.com/questions/15758980/android-service-need-to-run-alwaysnever-pause-or-stop,以及您在后台服务中所做的工作量/种类,看看这个库和注释 https://github.com/commonsguy/cwac-wakeful
AlarmManager
能够持续保证您的后台服务健康。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)