我正在制作一个使用倒数计时器Round的简单应用程序 进度条和3个按钮开始,暂停和恢复。我想要的是什么 做的是当特定活动开始时我按暂停它存储 计时器暂停并从该点恢复的时间 但问题是倒计时器不会停止,如果我 在7秒暂停,进度条在7秒停止,但是当我按下时 恢复它从计数器倒计时器值开始 那一刻。这是我想要实现的代码。
btnPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//When user request to pause the CountDownTimer
isPaused = true;
//Enable the resume and cancel button
btnResume.setEnabled(true);
//Disable the start and pause button
btnStart.setEnabled(false);
btnPause.setEnabled(false);
}
});
btnResume.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Disable the start and resume button
btnStart.setEnabled(false);
btnResume.setEnabled(false);
//Enable the pause and cancel button
btnPause.setEnabled(true);
//Specify the current state is not paused and canceled.
isPaused = false;
isCanceled = false;
mCountDownTimer.start();
}
});
这是倒数计时器的代码。
private void neck_rotations()
{
neckRotation = true;
mCountDownTimer = new CountDownTimer(NECK_ROTATION_TIME, 1000)
{
@Override
public void onTick(long millisUntilFinished)
{
if (isPaused || isCanceled)
{
paused_at = (int) (millisUntilFinished / 1000);
} else
{
timeRemaining = (int) (millisUntilFinished / 1000);
donutProgress.setMaxValue(NECK_ROTATION_TIME / 1000);
donutProgress.setValueAnimated((int) timeRemaining);
counter.setText(String.valueOf(timeRemaining));
}
}
@Override
public void onFinish()
{
response = "Jumps";
rest(response);
}
};
mCountDownTimer.start();
}
我是编程新手,所以感谢任何帮助或建议。谢谢。
答案 0 :(得分:1)
请参阅:
How to clear CountDownTimer from onTick method?
我不确定你是否可以禁用计时器从内部onTick()方法倒计时。
为CountDownTimer创建一个gloabl引用,并且只从该引用上的clickListeners调用start()或cancel()。