【问题标题】:How to stop a timer in java如何在java中停止计时器
【发布时间】:2015-11-16 00:46:23
【问题描述】:

我有一个名为 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() 每次有人输入东西时都会被调用,所以计时器会不断被调用,但这并不会停止以前的计时器,我希望计时器停止,然后重新调用它自己,这样问题就不存在了。有人知道方法吗?

【问题讨论】:

    标签: java timer


    【解决方案1】:

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-18
    • 2018-06-23
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多