我有一個計時器方法,每次用戶輸入內容時都會運行。基本上用戶有一分鐘的時間來輸入內容,或者定時器會打印一個響應,但是如果用戶在定時器耗盡之前輸入了某些東西,它將不會打印響應。基本上,我無法取消最後一個定時器並調用一個新定時器,因爲如果我不取消定時器,前一個定時器繼續運行,而新定時器繼續調用,所以它只是造成了巨大的混亂。我的方法如下如何在java中停止計時器
主營:
public static void main(String[] args) {
while(true) {
runner();
}
}
亞軍:
public static void runner() {
timer();
String s = input.nextLine();
System.out.println(s);
}
定時器:
public static void timer() {
TimerTask task = new TimerTask() {
public void run() {
System.out.println("Say something already!");
}
};
long delay = TimeUnit.MINUTES.toMillis(1);
Timer t = new Timer();
t.schedule(task, delay);
}
我究竟是如何使這個取消。有人要我在TimerTask類中使用cancel()方法,但我不明白在哪裏調用,甚至如何。
因爲被返回的東西,並不意味着我們可以」沒有timer()方法的void。那麼應該採取什麼措施而不是無效的呢? – user3450498
是的,錯字。定時器的返回類型應該是TimerTask(或Timer),具體取決於返回哪個對象。 – DBug