Tôi đang sử dụng java.util.timerlớp và tôi đang sử dụng phương thức lịch biểu của nó để thực hiện một số tác vụ, nhưng sau khi thực hiện nó 6 lần, tôi phải dừng tác vụ của nó.
Tôi nên làm điều đó như thế nào?
Câu trả lời:
Giữ một tham chiếu đến bộ đếm thời gian ở đâu đó và sử dụng:
timer.cancel();
timer.purge();
để dừng bất cứ điều gì nó đang làm. Bạn có thể đặt mã này bên trong tác vụ mà bạn đang thực hiện với một static intđể đếm số lần bạn đã thực hiện, ví dụ:
private static int count = 0;
public static void run() {
count++;
if (count >= 6) {
timer.cancel();
timer.purge();
return;
}
... perform task here ....
}
cancelbản thân nó sẽ hoạt động.
Hoặc gọi cancel()trênTimer nếu đó là tất cả của nó làm, hoặc cancel()trênTimerTask nếu hẹn giờ chính nó có các nhiệm vụ khác mà bạn muốn tiếp tục.
Bạn nên dừng tác vụ mà bạn đã lên lịch trên bộ hẹn giờ:
Timer t = new Timer();
TimerTask tt = new TimerTask() {
@Override
public void run() {
//do something
};
}
t.schedule(tt,1000,1000);
Để ngăn chặn:
tt.cancel();
t.cancel(); //In order to gracefully terminate the timer thread
Lưu ý rằng chỉ hủy bộ đếm thời gian sẽ không chấm dứt các bộ đếm thời gian đang diễn ra.
Kết thúc Bộ hẹn giờ một lần sau khi thức dậy tại một thời điểm cụ thể tính bằng mili giây.
Timer t = new Timer();
t.schedule(new TimerTask() {
@Override
public void run() {
System.out.println(" Run spcific task at given time.");
t.cancel();
}
}, 10000);