如何以比 WorkManager 的 15 分钟上限更快的速度轮询设备的位置数据?



我正在尝试每分钟左右轮询一次设备的长/纬度...我一直在研究并发现了一些东西。我正在考虑使用:

PeriodicWorkRequestBuilder()- 但是,我读到它至少只能每 15 分钟执行一次......

如果我想在较短的时间内轮询数据,可以使用哪些技术/设计模式?

  • 前台服务是我唯一的选择吗?

您可以使用任何 Runnable,但是当应用程序关闭时,它将不起作用。

前台服务是最佳选择,但在Android 9+中,它会让用户感到困惑

这是向您展示如何使用它的链接:

定时器

我建议您使用像工作管理器一样工作的AlarmManager,但它的响应更好,您可以使用倒数计时器,下面的链接将帮助您使用它:

AlarmManager

编辑:

使用警报管理器的打开活动示例

Intent intent = new Intent(this, YOUR_MAIN_ACTIVITY.class);
intent.setAction(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
PendingIntent pendingIntent = PendingIntent.getActivity(this, ID,
intent, 0);
final long DELAY_IN_MILLIS = DELAY_IN_MILLI_SECONDS+ 
System.currentTimeMillis();
AlarmManager alarmManager = (AlarmManager)
getSystemService(Activity.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, DELAY_IN_MILLIS,pendingIntent);

还有一个完整的示例供您使用:

最新更新