4

我不想让计时器每 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);

速度是一个整数:

public int Speed=2500;

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

有人可以帮我吗?

4

1 回答 1

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);
于 2012-12-01T09:58:03.590 回答