首页 > 解决方案 > 每隔几小时在特定的毫秒内执行任务 Android

问题描述

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

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

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

标签: androidtime

解决方案


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

这也需要计划确切的警报权限。阅读https://developer.android.com/reference/android/app/AlarmManager#setExactAndAllowWhileIdle(int,%20long,%20android.app.PendingIntent)上的文档


推荐阅读