timer.schedule变速

时间:2012-12-01 09:52:08

标签: java

我不是计时器每2.5秒做一次工作(在程序开始时), 这是使用以下代码。

Timer timer = new Timer();


timer.schedule(new TimerTask() {

     //   @Override
     @Override
        public void run() {

here is the code, and i do Speed = Speed-500

      }, Speed,Speed);

速度是一个int:

public int Speed=2500;

但问题是计时器的速度保持在2500,而变速速度每次都降低500,因此该部分正在工作。只有计时器不会检查速度是否已更改。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:3)

你不能这样做,因为一旦你完成了计划,它将用Timer修复它。

在指定的延迟之后开始,为重复的固定延迟执行安排指定的任务。随后的执行大约以规定的时间间隔进行,并以指定的时间段分隔。

在这种情况下,您可以取消上一个并安排新的TimerTask。

Timer timer = new Timer();

initialize the speed here

loop based on time

timer.schedule(new TimerTask() {

     //   @Override
     @Override
        public void run() {

here is the code, and i do Speed = Speed-500

      }, Speed,Speed);