gpt4 book ai didi

java - 如何才能比 WorkManager 的 15 分钟上限更快地轮询设备以获取位置数据?

转载 作者:行者123 更新时间:2023-12-01 22:47:54 25 4
gpt4 key购买 nike

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

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

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

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

最佳答案

您可以使用任何 Runnable,但当应用程序关闭时,它将无法工作。

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

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

Timer

但是

我建议您使用一个AlarmManager,它的工作方式类似于工作管理器,但它响应更好,您可以使用倒计时器,下面的链接将帮助您使用它:

AlarmManager

编辑:

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

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);

这里有一个完整的例子供您使用:

Example

关于java - 如何才能比 WorkManager 的 15 分钟上限更快地轮询设备以获取位置数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58466153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com