Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中停止计时器_Java_Timer - Fatal编程技术网

如何在java中停止计时器

如何在java中停止计时器,java,timer,Java,Timer,我有一个名为timer的方法,每当用户输入某个内容时,我都会运行该方法,并将计时器安排为一分钟,但如果用户在不到一分钟的时间内输入某个内容,我希望计时器取消,然后重新调用自己,这样整个过程就会再次发生。我的方法如下: 输入法 public static String run(){ timer(); //runs everytime I call run() String s = input.nextLine(); return s; } 计时器法 public

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

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


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

那么,我该如何通过说t.cancel;,来取消它呢@user3450498-正确,t.取消;将取消计时器。有关更多信息,请参考java文档: