【发布时间】:2014-11-29 09:06:17
【问题描述】:
我经历了各种讨论线程并尝试了多次迭代,以使我的应用程序计划以固定的时间间隔重复运行。我也成功了,但启动线程以了解事情是如何运作的。
我曾尝试使用 ScheduledExecutorService 和 TimerTask 实现,但两者都没有以正确的时间间隔触发我的任务。但是使用 AlarmManager 成功了。
请指引我正确的方向,以了解为什么 ScheduledExecutorService 和 TimerTask 的计时效果不佳。
应用需要定期执行任务。比如说,我的任务大约需要 5 分钟才能完成,我想让它按计划运行,以便每 30 分钟运行一次。当我用 ScheduledExecutorService 或 TimerTask 构建应用程序时,我发现它不会在 30 分钟触发任务,而是在 1 小时甚至更长时间触发。到目前为止,使用警报管理器,它似乎在 30 分钟左右触发时工作正常(仍然发现略有差异,但比其他两个更好)。
【问题讨论】:
-
请完整、准确地解释“效果不佳”是什么意思。
-
@CommonsWare 已更新问题的详细信息。请看一看。
标签: android scheduled-tasks alarmmanager timertask scheduledexecutorservice