1

我不明白如何pause. counterdowntimer我有一个公共倒计时:

    public CountDownTimer myTimer = new CountDownTimer(300000, 1000) {
    public void onTick(long millisUntilFinished) {
        ...
        setCurrentTime(currentTime);
    }
    public void onFinish() {
        setCurrentTime("0");
    }
};

我可以通过.start(),但我不能。开发文档.cancel()buttonclick.wait()

该方法只能由拥有该对象监视器的线程调用;请参阅 notify() 以了解线程如何成为监视器的所有者。

这是什么意思?

我试图保存millisUntilFinished在一个变量中,但是如何timer从该值重新启动?

还有其他解决方案吗?

4

2 回答 2

1

您可以实现一个全局变量,例如,private Boolean pauseTimer=false;然后检查onTick变量是否为真 - 如果它被调用SystemClock.sleep()

于 2011-12-22T16:21:03.833 回答
-1

除非当前线程拥有该对象的监视器,否则您不能在对象上等待()。为此,您必须对其进行同步。

于 2011-12-22T16:20:11.267 回答