【发布时间】:2016-05-01 10:32:37
【问题描述】:
是否可以在 Android 中暂停 CountDownTimer?我一直在寻找好的解决方案,但我只是找到了一些我真的不喜欢的方法。只需将剩余时间保存在变量中并使用该值初始化一个新的 CountDownTimer 。
这种解决方案有效,但它们看起来不太好,因为我正在使用圆形进度条和 Textview 以及我的倒计时计时器。真的很难看这两个看起来不错的倒计时而不能真正“暂停”它。
这是我用 ProgressBar 和 TextView 初始化 CountDownTimer 的代码。
public void initProgress() {
if (mCountdownProgressBar == null)
mCountdownProgressBar = (CircleProgressBar) findViewById(R.id.progressBar);
mCountDownTime = 30000; //Insert your desire time in Milliseconds here
mCountdownProgressBar.setMaxProgress((int)TimeUnit.MILLISECONDS.toSeconds(mCountDownTime));
mCountDownTimer = new CustomCountDownTimer(mCountDownTime, 1000) {
@Override
public void onTick(long millisUntilFinished) {
Log.v("Log_tag", "Tick of Progress" + TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished));
mCountdownProgressBar.setmProgress(TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished));
mTimer.setText(Util.getTimeForTimer(millisUntilFinished, Util.TIME_FORMAT));
}
@Override
public void onFinish() {
mCountdownProgressBar.setmProgress(0);
mTimer.setText(Util.getTimeForTimer(0, Util.TIME_FORMAT));
}
};
mCountDownTimer.start();
}
使用此代码,您将能够与 CountDownTimer 一起设置 progressBar 和 TextView。为了能够很容易地暂停和恢复它,我将在下一个为 CountDownTimer 发布自定义类。
【问题讨论】:
标签: android time timer progress-bar countdowntimer