定时器以外的代码?

时间:2016-07-01 19:57:59

标签: java android string algorithm timer

我有一个非常简单的问题。使用CountDownTimer,有一个名为onFinish()的回调方法,其中可以放置应在计时器完成后执行的代码。

new CountDownTimer(10000, 1000) {
        public void onTick(long millisUntilFinished) {
            Log.v(TAG, "Ticking");
        }
        public void onFinish() {
            Log.v(TAG, "Finished timer"); //Gets called :)
        }
    }.start();

    Log.v(TAG, "Outside of timer code now."); // NEVER GETS CALLED!?

但是,不会调用计时器onFinish 方法之外的任何代码

Log.v(TAG, "Outside of timer code now.");从未显示。

通过简单地在匿名定时器实例化之外的.start()之后放置代码,我可以做些什么来在定时器完成后执行代码吗?

P.S。我知道我可以使用onFinish()方法,但为什么不在定时器外执行代码?

1 个答案:

答案 0 :(得分:0)

因为您在调用Log.v(TAG, "Outside of timer code now.");方法后立即执行了CountDownTimer.start()方法。那是因为"开始"你的" CountDownTimer"的方法class不会锁定你的执行线程,所以当你调用它时,定时器启动并异步执行(创建一个新的执行线程),然后立即执行你的" Log.v(TAG," Outside现在定时器代码。")"方法执行。