【问题标题】:Best approach to achieve guaranteed repeating background work Android实现保证重复后台工作的最佳方法 Android
【发布时间】: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


【解决方案1】:

我的建议是即使在 alpha 版本中也使用 WorkManager。我已经将它用于类似的任务并且它有效。我第一次开始使用它时,那里发生了崩溃,但是在新版本发布后不再发生崩溃。 Google 为其库提供了良好的支持,因此请使用 WorkManager,因为它是执行后台任务的最佳选择。

【讨论】:

    猜你喜欢
    • 2016-12-05
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    相关资源
    最近更新 更多