Java - 每次定时器滴答时如何做某事?

时间:2017-09-18 01:24:24

标签: java timer

我有一个java Timer,我想让它在每次滴答时做一些事情。例如,我希望我的程序输出:

我想要的输出:

  

勾选1秒钟   嘀嗒2秒过去了   嘀嗒3秒过去了   嘀嗒4秒过去了   嘀嗒5秒过去了   时间到了,运行do_something()......

到目前为止我所拥有的是:

Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
    @Override
    public void run() {
        System.out.println("Time up, running do_something()");
        do_something();
    }
};
timer.schedule(timerTask, 5);

到目前为止我的代码的实际输出是:

  

时间到了,运行do_something()......

当我到达这条线时已经过了5秒钟。

1 个答案:

答案 0 :(得分:0)

如果你想要循环,你应该使用schedule的重载方法而不是Timer

timer.schedule(TimerTask task, long delay, long period);

将在指定的延迟之后开始为重复固定延迟执行安排指定任务。