您好我正在使用倒数计时器处理应用。单击该按钮时,计时器将根据用户对文本字段的输入启动,当我更改文本字段的值并启动计时器的新值时,它会闪烁并显示上一个倒计时值并将这两个值计数,在前一个倒计时值和当前倒计时值之间闪烁。如何让计时器忘记之前的值并仅使用当前计时器值。
我尝试使用取消功能但是没有工作,我认为这是我的刻录功能中的一些东西,但我不确定它是什么。
这是我的代码:
CountDownTimer mcountDownTimer = new CountDownTimer(getmonTime(), 1000) { // adjust the milli seconds here
public void onTick(long millisUntilFinished) {
long hr1=TimeUnit.MILLISECONDS.toHours( millisUntilFinished);
long sub1=hr1*60;
long min1=TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished);
long sub2=min1*60;
timer.setText(""+String.format("%d hr,%d min, %d sec",
TimeUnit.MILLISECONDS.toHours( millisUntilFinished),
TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)-sub1,
TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)-sub2,
-
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
}
public void onFinish() {
timer.setText("0");
}
};
mcountDownTimer.start();
}
};
答案 0 :(得分:0)
您可能不会取消之前的那个。
保存CountDownTimer mcountDownTimer
的实例(BTW将其重命名为mCountDownTimer
)
在设置新的之前,请使用以下命令取消旧的:
mCountDownTimer.cancel();
然后才创建新实例。
E.g:
CountDownTimer mCountDownTimer;
@Override
public void onCreate...
...
if (mCountDownTimer != null) mCountDownTimer.cancel();
mCountDownTimer = new CountDownTimer...