【问题标题】:What's the proper way to implement resumable scheduler on Android?在 Android 上实现可恢复调度程序的正确方法是什么?
【发布时间】:2019-09-15 19:07:09
【问题描述】:

我正在考虑编写一个简单的 Android 来执行具有以下要求的任务(例如检索当前位置或向 DB 发送一些值):

  • 任务按一定的时间间隔执行,比如每 1 分钟或 5 分钟
  • 每次任务启动时,即使应用程序已最小化,它也应该运行。
  • 可以随时取消/恢复该任务(由用户单击应用程序中的按钮)。

实现这一点的正确方法是什么。 意向服务?工作意向服务?作业调度器?

【问题讨论】:

    标签: android scheduled-tasks job-scheduling android-jobscheduler android-workmanager


    【解决方案1】:

    根据您的需要有三种方式:

    在所有三种情况下,您都需要存储对工作的引用(前两个选项让您存储和 id)。

    当然,您也可以使用服务来执行此类操作,但在所有情况下都要注意Doze Mode,它会对您的应用产生副作用。

    希望这会给你一些提示。 干杯。

    【讨论】:

    • 第一次听说PeriodicWorkRequest。似乎符合我的要求。让我试一试。
    【解决方案2】:

    鉴于您的要求,尤其是 1 或 5 分钟的重复,唯一的选择是使用前台服务。

    请注意,设备会在一段时间不活动后尝试进入打盹模式。您可以强制设备保持唤醒状态,但这对电池非常不利。

    从 Android Oreo 开始,在您的应用处于后台时获取位置信息对节省电池有一些限制: https://developer.android.com/about/versions/oreo/background-location-limits

    【讨论】:

      猜你喜欢
      • 2022-09-24
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      相关资源
      最近更新 更多