我有一个 Timer
,我用 delay
0 和 period
150 安排了 TimerTask
。
现在我想更改period
,但Timer
已经在运行。
现在如何更改期间
?
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);
最佳答案
Timer and TimerTask - how to reschedule Timer from within TimerTask run
检查两个链接。这个问题可能与上述任一问题重复。
因此您可以按如下方式修改代码:
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);
干杯。
关于Java - 更改计时器运行时的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42050838/