如何在api 26中的BOOT_COMPLETED上运行“服务”?

时间:2018-08-12 05:47:56

标签: android service

我确实尝试过,但是找不到任何东西。我有一个Service(不是IntentService)停留在后台,不断调用Web服务以查看是否有关于用户的任何更新,如果有,则显示通知。

此服务必须从BOOT_COMPELETED开始,但是api 26中的新限制使其很难使用。

那么我该如何绕过这些限制并使用我的服务?

我可以检查api> = 26,是否以foreground的身份启动服务,然后立即将带有IMPORTANCE_MIN的通知与其绑定,这样它就不会关闭并且可以正常工作,但是我宁愿不要弄乱用户的通知fold(!)。还有其他想法吗?预先感谢。

1 个答案:

答案 0 :(得分:1)

如果要在后台连续运行,则必须使用前台服务。

正确的方法是:

  1. 让您的Web服务将更新推送到设备,而不是不断轮询
  2. 使用WorkManager之类的API定期轮询您的Web服务(最多每15分钟一次)