由于要做暂停和恢复,这里我就没有使用Android的CountDownTimer,而是用了Java的Timer。所以,这个方法在java肯定是通用。我也外加了Android独有的Service,有些计时器需要在Activiy关闭的情况下依然在计时,回到Activity时,显示当前的计时状态。
Timer 这个Java的类,具体看Java的API说明,但是要注意一点:
Timer 在cancel后,需要重新new 一次。
首先要给计时器定义三个状态:准备,开始,暂停。
publicstaticfinalintPREPARE =0;
publicstaticfinalintSTART =1;
publicstaticfinalintPASUSE =2;
1.准备:没有开始计时,最初始状态;
2.开始:已经开始倒计时
3.暂停:已经开始倒计时,而且用户点击了暂停
开始、恢复倒计时,我定义了这个方法:
privatevoidstartTimer(){
timer = newTimer();
timerTask = newMyTimerTask();
timer.scheduleAtFixedRate(timerTask, 0, timer_unit);
}
timer_unit 就是执行timer 任务的时间,我定义为1秒。MyTimerTask是我定义的一个倒计时计算方法,如下:
privateclassMyTimerTaskext