如何在java中停止计时器

时间:2015-11-16 00:46:24

标签: java timer

我有一个叫做计时器的方法,每当用户输入一些内容并且计时器被安排一分钟时,我就会运行这个方法,但如果用户在不到一分钟的时间内输入内容,我希望取消定时器,然后回想一下整个过程再次发生。我的方法如下:

输入法

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()每当有人输入一些内容时就会一直调用,这样定时器就会被调用,但这并不能阻止以前的定时器,我希望定时器停止,然后调用自己以便不存在问题。有人知道吗?

1 个答案:

答案 0 :(得分:4)

TimerTask类有一个名为cancel()的方法,您可以调用它来取消待定的计时器。

在您的代码中,您可能需要修改timer()函数以返回对新创建的TimerTask对象的引用,以便稍后调用cancel()