我有一个叫做计时器的方法,每当用户输入一些内容并且计时器被安排一分钟时,我就会运行这个方法,但如果用户在不到一分钟的时间内输入内容,我希望取消定时器,然后回想一下整个过程再次发生。我的方法如下:
输入法
public static String run(){
timer(); //runs everytime I call run()
String s = input.nextLine();
return s;
}
计时器方法
public static void timer() {
TimerTask task = new TimerTask() {
public void run() {
System.out.println("Times up");
}
};
long delay = TimeUnit.MINUTES.toMillis(1);
Timer t = new Timer();
t.schedule(task, delay);
}
方法run()每当有人输入一些内容时就会一直调用,这样定时器就会被调用,但这并不能阻止以前的定时器,我希望定时器停止,然后调用自己以便不存在问题。有人知道吗?
答案 0 :(得分:4)
TimerTask
类有一个名为cancel()
的方法,您可以调用它来取消待定的计时器。
在您的代码中,您可能需要修改timer()
函数以返回对新创建的TimerTask
对象的引用,以便稍后调用cancel()
。