我正在尝试每分钟左右轮询一次设备的长/纬度...我一直在研究并发现了一些东西。我正在考虑使用:
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);
还有一个完整的示例供您使用:
例