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

问题描述 投票:-2回答:2

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

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

实现这个的正确方法是什么。 IntentService? JobIntentService?的jobscheduler?

android scheduled-tasks job-scheduling android-jobscheduler android-workmanager
2个回答
0
投票

根据您的需求,有三种方式:

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

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

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


0
投票

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

请记住,设备将在一些不活动时间后尝试进入打盹模式。您可以强制设备保持清醒,但这对电池来说非常糟糕。

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

© www.soinside.com 2019 - 2024. All rights reserved.