我需要Timer
基本上每t秒做一次事。但我希望能够修改计时器重复任务的计时器周期。我写了这样的话:
public Bot() {
timer = new Timer();
timer.schedule(new Task(), 1000, moveTime = 1000);
}
public class Task extends TimerTask {
@Override
public void run() {
System.out.println("Time Passed from last repeat:" + movetime)
moveTime += 1000;
}
因此,在1000ms延迟后,定时器启动并重复每moveTime
ms。问题是即使我将movetime
增加1000,计时器始终以初始延迟(1000)运行,但每次定时器调用时movetime
的值增加(2000,3000,4000等){{ 1}}。
我是否遗漏了某些东西,或者我有什么替代方案,每隔't'秒重复一次任务,而't'是可变的?
感谢。
答案 0 :(得分:12)
我不认为java.util.Timer
类支持这一点。
你能做的就是使用Timer.schedule(TimerTask, int)
方法在一定时间后执行你的任务。当您的任务执行完毕后,您可以使用所需的新间隔安排新的计时器。
类似的东西:
int moveTime = 1000;
Timer timer = new Timer();
public Bot(){
timer.schedule(new Task(), moveTime);
}
public class Task extends TimerTask {
@Override
public void run() {
System.out.println("Time Passed from last repeat:"+movetime)
moveTime += 1000;
timer.schedule(new Task(), moveTime)
}
}