每小时在特定毫秒执行任务 Android
Execute task every hours at specific milliseconds Android
对于我的应用程序,我需要每隔一小时但在特定时间执行一次任务。
服务器 return 对我来说是一个毫秒数,例如:100 毫秒,所以我需要在 :
执行任务
- 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 小时 运行 完成一项任务,但我不知道如何在特定时间执行。如果有人有解决方案:)
如果您真的需要精确的毫秒数(我真的非常怀疑您是否这样做),那您就倒霉了。 Android 不是实时的 OS,因为 Linux 不是实时的 OS,因此无法做出这些保证。如果你只需要非常接近时间(比如精确到秒),即使在低功耗模式下也会调用 AlarmManager.setExactAndAllowWhileIdle 。但是,没有重复版本,因此如果需要,您需要自己实施。而且 AlarmManager 不会通过重新启动来保留警报,因此如果您需要它,您将不得不这样做。最后,您有大约 10 秒的时间来执行您需要的任何操作,或者采取适当的措施(例如唤醒锁)来执行更多操作。
这还需要时间表确切的警报权限。在 https://developer.android.com/reference/android/app/AlarmManager#setExactAndAllowWhileIdle(int,%20long,%20android.app.PendingIntent)
阅读文档
对于我的应用程序,我需要每隔一小时但在特定时间执行一次任务。 服务器 return 对我来说是一个毫秒数,例如:100 毫秒,所以我需要在 :
执行任务- 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 小时 运行 完成一项任务,但我不知道如何在特定时间执行。如果有人有解决方案:)
如果您真的需要精确的毫秒数(我真的非常怀疑您是否这样做),那您就倒霉了。 Android 不是实时的 OS,因为 Linux 不是实时的 OS,因此无法做出这些保证。如果你只需要非常接近时间(比如精确到秒),即使在低功耗模式下也会调用 AlarmManager.setExactAndAllowWhileIdle 。但是,没有重复版本,因此如果需要,您需要自己实施。而且 AlarmManager 不会通过重新启动来保留警报,因此如果您需要它,您将不得不这样做。最后,您有大约 10 秒的时间来执行您需要的任何操作,或者采取适当的措施(例如唤醒锁)来执行更多操作。
这还需要时间表确切的警报权限。在 https://developer.android.com/reference/android/app/AlarmManager#setExactAndAllowWhileIdle(int,%20long,%20android.app.PendingIntent)
阅读文档