Android 8.0:保持后台服务活跃

时间:2019-03-06 01:48:25

标签: android background-service

我相信大家都已经熟悉Android 8.0及更高版本(https://developer.android.com/about/versions/oreo/background.html#services)上的“后台服务限制”。

我现在有一个非常特殊的问题。我的应用程序是针对非常特定的用例的。应用程序每分钟检查一次服务器上的某些数据,如果值有误,则会立即向用户发出警报。显然,到目前为止,应用程序是以后台服务的形式运行的,我的客户从未关心过每分钟执行一次复杂计算所产生的(明显)电池消耗。

现在,整个想法是,无论任何事情,应用都需要保持活跃,工作和在后台运行(即使有永久性通知,我也没有什么可隐藏的)!如果电话处于尽可能深的睡眠状态-服务需要保持运行。如果还剩2%的电池,则服务需要继续运行。到目前为止,我设法通过使用警报和“监护人服务”实现了这一目标,从而阻止了在安装应用程序时停止后台服务的任何方式。但是现在,使用Android“ 0”-怎么走?是否有JobScheduler可以保证以给定的速率(每分钟)执行,而不管任何事情?

SMS /电话,WhatsApp和类似应用程序如何实现“无论发生什么都保持清醒”状态?

1 个答案:

答案 0 :(得分:0)

这就是Google告诉我们的。

  

过程不是永远的。   如果您觉得需要前台服务来保持生命   永久,那么这表示前台服务处于   不是正确的答案。

Effective foreground services on Android

我认为您可以在WorkManager中使用重复性任务,或者更改体系结构并使用FCM。无论如何,Google都不会让我们像以前那样工作。