2017-02-05 8 views
1

を実行している間、私は今、私はperiodを変更したいのですが、Timerがすでに実行されているdelay 0でTimerTask予定して Timerを持っているタイマーの時間を変更します。 periodを変更するにはどうすればよいですか?Javaは - それは

private int penultimateStep = 1; 
private int lastStep = 1; 
private Timer move = new Timer(); 
private TimerTask movePlayer = new TimerTask(){ 
    public void run(){ 
     //Schritte ändern 
     if(lastStep==3){ 
      lastStep = 2; 
      penultimateStep = 1; 
     } 
     else if(lastStep==1){ 
      lastStep = 2; 
      penultimateStep = 3; 
     } 
     else if(lastStep==2){ 
      if(penultimateStep==1){ 
       lastStep = 1; 
       penultimateStep = 3; 
      } 
      else if(penultimateStep==3){ 
       lastStep = 3; 
       penultimateStep = 1; 
      } 
     } 
    } 
}; 


... 

move.schedule(movePlayer, 0, 150); 
+0

いくつかのコードを共有して助けてもらえますか? – azro

+0

使用しているタイマーによって異なります。 –

+0

タスクのスケジュールを変更したいですか? – xFighter

答えて

-1

Timer and TimerTask - how to reschedule Timer from within TimerTask run

Resettable Java Timer

2つのリンクを確認してください。この質問は、上記のいずれかと重複している可能性があります。

private int penultimateStep = 1; 
private int lastStep = 1; 
private Timer move = new Timer(); 

class MovePlayer extends TimerTask { 
    public void run(){ 
     //Schritte ändern 
     if(lastStep==3){ 
      lastStep = 2; 
      penultimateStep = 1; 
     } 
     else if(lastStep==1){ 
      lastStep = 2; 
      penultimateStep = 3; 
     } 
     else if(lastStep==2){ 
      if(penultimateStep==1){ 
       lastStep = 1; 
       penultimateStep = 3; 
      } 
      else if(penultimateStep==3){ 
       lastStep = 3; 
       penultimateStep = 1; 
      } 
     } 
    } 
} 


... 

move.schedule(new MovePlayer(), 0, 150); 

乾杯を次のように

つまり、あなたのコードを変更することができます。

関連する問題