У меня есть метод таймера, который запускается каждый раз, когда пользователь вводит что-то. В основном пользователь имеет минуту для ввода чего-либо или таймер будет печатать ответ, но он не будет печатать ответ, если пользователь вводит что-то до истечения таймера. В принципе, у меня возникли проблемы с отменой последнего таймера и вызовом нового, потому что, если я не отменяю таймер, предыдущий таймер продолжает работать, пока новый продолжает звонить, поэтому он просто создает огромный беспорядок. Мои методы нижеКак остановить таймер в java
Main:
public static void main(String[] args) {
while(true) {
runner();
}
}
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);
}
Как именно я буду делать это отменить. Кто-то должен использовать метод cancel() в классе TimerTask, но я не понимаю, куда звонить или даже как.
так что-то возвращается, это не означает, что мы можем» t недействительны для метода timer(). Что вместо этого следует ввести вместо пустоты? – user3450498
есть, опечатка. Тип возврата для таймера должен быть TimerTask (или Timer), в зависимости от того, какой объект возвращается. – DBug