我在 Android 8.0 中还能有数据记录后台服务吗?

Can I still have a data logging background service in Android 8.0?

我的应用依赖于每秒在后台服务中记录电池温度以及其他几个传感器变量,可以从主 activity 启动并在后台继续 运行直到它停止(通过主 activity 中的另一个按钮)。这在 Android 7.0 及以下版本中运行良好,但阅读 Android 8.0 时,它似乎非常严重地限制了后台服务。我还能像现在这样进行数据记录吗?还是不再可能了?

如果您的用例是在此处理期间将应用程序保持在前台,那么, 基于 documentation,应该没有任何问题,因为如果您的应用程序不在前台或没有前台应用程序连接到该应用程序,则会应用后台服务的限制

X 分钟(根据我的观察,大约 1 - 2 分钟)在您的应用程序进入后台后,所有对后台服务的限制将启动,并且您的服务将停止,就好像您已调用 Service.stopSelf ()

你应该避免连续这样做,因为如果打算在后台这样做,它会影响设备的电池寿命。您可以使用 JobScheduler/AlarmManager.

定期执行日志记录

如果您仍想继续,您可以创建服务 ForegroudService 并执行操作,但如果系统认为您的任务是 CPU 密集型任务,那么此方法也不会奏效