日期:2014-05-20  浏览次数:20642 次

Timer没有按预计的延迟时间启动task
用一个Timer延迟启动一个Task: timer.schedule(timerTask, deltaTime);
在timerTask再次使用timer来确定下次启动timerTask的时间。出现的问题:timertask没有按照计划deltaTime的时间间隔,有时会比预计多延迟出10几分钟,最多的时候甚至一个小时左右。请问大牛们,这是什么原因导致的?有什么方法可以解决?

------解决方案--------------------
如果是循环任务,应该使用schedule(TimerTask task, long delay, long period) 

非循环任务,仅仅执行一次,也就是计划好任务后delay(毫秒)执行,这个应该不会错的,至少我没遇到过。
------解决方案--------------------
引用:
Quote: 引用:

间隔时间是任务完成后开始算,如果你的任务运行时间比较长下一个任务就会延时。
我是在任务完成后再调用一次timer.schedule(timerTask, deltaTime);设置下次运行的时间

一个timer是单线程的,如果有多个任务在跑,也有可能延迟。