在Android上实施可恢复调度程序的正确方法是什么?

时间:2019-04-26 09:32:36

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

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

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

实现此目的的正确方法是什么? IntentService? JobIntentService? JobScheduler?

2 个答案:

答案 0 :(得分:0)

根据您的需要,有以下三种方法:

在所有三种情况下,您都需要存储对作业的引用(前两个选项可以存储和标识)。

当然,您也可以使用服务来执行此类操作,但是在所有情况下,请注意Doze Mode及其对应用程序的副作用。

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

答案 1 :(得分:0)

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

请记住,设备将在闲置一段时间后尝试进入打ze模式。您可以强制设备保持苏醒状态,但这确实对电池不利。

从Android Oreo开始,在应用程序在后台运行时获取位置信息对保存电池有一些限制: https://developer.android.com/about/versions/oreo/background-location-limits