我正在考虑编写一个简单的Android来执行任务(例如,检索当前位置或向DB发送一些值)以满足这些要求:
实现这个的正确方法是什么。 IntentService? JobIntentService?的jobscheduler?
根据您的需求,有三种方式:
在所有这三种情况下,您都需要存储对作业的引用(前两个选项可以存储和ID)。
当然,您也可以使用服务进行此类操作,但在所有情况下都要注意Doze Mode及其对您的应用程序的副作用。
希望这会给你一些提示。干杯。
根据您的要求,尤其是重复1或5分钟,唯一的选择是使用前台服务。
请记住,设备将在一些不活动时间后尝试进入打盹模式。您可以强制设备保持清醒,但这对电池来说非常糟糕。
从Android Oreo开始,在应用程序处于后台时获取位置有一些限制来保留电池:https://developer.android.com/about/versions/oreo/background-location-limits