如何循环此计时器?我想每1秒打印一次。
Timer timer = new Timer();
timer = new Timer(false);
for (int i = 0; i < 10; i++) {
timer.schedule(new TimerTask() {
@Override
public void run() {
i--;
System.out.println("Java " + i);
}
}, 0, 1000);
}
答案 0 :(得分:2)
如果它真的是您想要的,请更改
}, 0, 1000);
到
}, 0, i * 1000);
将i = 0
置于i = 1
,将11
置于10
或使用<=
它将创建和安排一个新的TimerTask 10次
答案 1 :(得分:0)
好方法是创建自己的TimerTask类。
在您的Main类中,您有这个主要方法:
public static void main(String[] args) {
Timer timer = new Timer();
timer.schedule(new MyTimerTask(10), 1000, 1000);
}
然后你只需要创建自己的TimerTask类
import java.util.TimerTask;
public class MyTimerTask extends TimerTask {
private int i2;
public MyTimerTask(int i2){
this.i2 = i2;
}
@Override
public void run() {
System.out.println("heej: " + i2);
}
}
这是每秒输出heej: 10
。
使用您自己的课程,您可以像这样控制那里发生的事情:
import java.util.TimerTask;
public class MyTimerTask extends TimerTask {
private int i2;
private int count = 0;
public MyTimerTask(int i2){
this.i2 = i2;
}
@Override
public void run() {
count++;
System.out.println("heej: " + i2);
if (count > 10){
this.cancel();
}
}
}