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 で毎回低下するため、その部分が機能していることです。Speed が変更されたかどうかを確認しないのはタイマーだけです。

誰かがこれで私を助けることができますか?

4

1 に答える 1

3

スケジュールを完了するとタイマーで修正されるため、それはできません。

指定されたタスクを、指定された遅延の後に開始して、固定遅延で繰り返し実行するようにスケジュールします。以降の実行は、指定された期間で区切られたほぼ一定の間隔で行われます。

この場合、前のものをキャンセルして、新しい 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 に答える