我的应用程序依赖于记录电池温度以及其他几个传感器变量,后台服务中每秒都可以从主活动启动并继续在后台运行直到它停止(通过主要的另一个按钮)活动)。这在Android 7.0及更低版本中运行良好,但在阅读Android 8.0时,它看起来非常严重地限制了后台服务。我是否仍然可以执行我目前所做的数据记录,或者这是不可能的?
答案 0 :(得分:3)
如果您的用例是在此处理期间将应用程序保持在前台,那么, 基于documentation,应该没有任何问题,因为如果您的应用不在Foreground中或者前景应用没有连接到应用,则会应用后台服务的限制
X分钟(基于我的观察结果,大约1 - 2分钟),在您的应用程序进入后台后,所有后台服务限制都将启动,您的服务将被停止,就像您已调用Service.stopSelf()
你应该避免连续使用,因为它会影响设备的电池寿命,如果打算在后台进行。您可以使用JobScheduler / AlarmManager定期执行日志记录。
如果您仍想继续,可以使ForegroudService服务并执行操作,但如果系统将您的任务视为CPU密集型,那么此方法将无法正常工作