2011-12-22 33 views
1

我不明白如何pausecounterdowntimer。我有一个公共countdowntimer:android countdowntimer wait

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

有没有其他解决方案?

回答

0

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

+0

我该如何同步它? – 2011-12-23 07:49:59

1

你可以实现一个全局变量如private Boolean pauseTimer=false;然后检查onTick如果变量是真的 - 如果是则调用SystemClock.sleep()

+0

does systemclock.sleep()延迟开发时钟? – 2011-12-23 07:53:27

+0

它暂停了线程,所以线程在给定的时间内不会执行任何操作。 – Force 2011-12-23 10:09:18

+0

这只是一个延迟,它问我一个延迟时间。暂停时如何保持暂停状态? – 2011-12-24 14:15:59