Как зацикливать этот таймер? Я хочу печатать каждые 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, 1000);
в
}, 0, i * 1000);
И поместите i = 0
в i = 1
, а 11
не 10
или используйте <=
Он будет создавать и планировать новую TimerTask 10 раз
Хорошим способом является создание собственного класса TimerTask.
В вашем основном классе у вас есть этот основной метод:
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
каждую секунду.
С вашим собственным классом вы можете контролировать, что такое happeing, например:
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();
}
}
}