在特定的毫秒内每小时执行一次任务 Android

时间:2021-07-05 13:13:04

标签: android time

对于我的应用程序,我需要每隔几个小时但在特定时间执行一项任务。 服务器返回给我的毫秒数,例如:100ms,所以我需要在 :

执行任务
  • 00:00:00.100
  • 01:00:00.100
  • 02:00:00.100 等等......

例如如果数字是 3500,我需要在以下位置执行任务:

  • 00:00:03.500
  • 01:00:03.500
  • 02:00:03.500 等......

我知道如何每隔 1 小时运行一次任务,但我不知道如何在特定时间执行。如果有人有解决方案:)

1 个答案:

答案 0 :(得分:0)

如果你真的需要确切的毫秒(我真的,真的很怀疑你这样做),那你就不走运了。 Android 不是实时操作系统,因为 Linux 不是实时操作系统,并且不做出这些保证。如果您只需要非常接近时间(例如精确到秒),即使在低功耗模式下也会调用 AlarmManager.setExactAndAllowWhileIdle。但是,没有重复版本,因此您需要在需要时自己实现。并且 AlarmManager 不会通过重新启动来保持警报,因此如果您需要它,则必须这样做。最后,您有大约 10 秒的时间来执行您需要的任何操作或采取适当的措施(例如唤醒锁)来执行更多操作。

这也需要调度精确警报权限。在 https://developer.android.com/reference/android/app/AlarmManager#setExactAndAllowWhileIdle(int,%20long,%20android.app.PendingIntent)

阅读文档