【发布时间】:2018-12-12 09:50:26
【问题描述】:
我正在开发一个应用程序,该应用程序主要只是做后台工作,每 15 分钟从附近的 BLE(低功耗蓝牙)传感器读取数据(如果蓝牙未打开,则需要提示用户从后台服务开启)并每天同步一次数据到服务器。我不确定哪种方法最适合做后台工作,因为我需要保证后台任务的及时执行,因为这对应用程序的用途非常重要。
我研究了以下方法:
使用带有 WakefulBroadcastReceiver 的 ServiceIntent 瞬间。但我发现 WakefulBroadcastReceiver 已被弃用,并且自 Android O 以来运行后台工作的限制更多。
报警管理器
- 作业调度器
- WorkManager(似乎是一个不错的候选者,但仍处于 alpha 阶段,似乎还没有准备好生产)
任何帮助将不胜感激。 谢谢
【问题讨论】:
-
JobScheduler 如果您对 alpha 中的 WorkManager 没有信心,则可以选择。
-
嗯,WorkManager 是我为后台工作尝试过的最佳解决方案,但正如你所说,它仍处于 alpha 阶段,所以选择 JobScheduler
-
@OussemaAroua 但是您是否认为有一个调整可以保证及时(每 15 分钟)使用 JobScheduler 执行我的后台任务,同时牢记 6.0 版中引入的后台服务限制以及打盹模式和应用待机?
标签: android android-service alarmmanager android-jobscheduler android-workmanager