Android 倒数计时器不断在上一个值和当前值之间迭代
Android countdown timer keeps iterating between previous and current value
您好,我正在开发一款带有倒数计时器的应用程序。单击按钮时,计时器根据用户在文本字段中的输入启动,当我更改文本字段的值并且计时器的新值启动时,它会闪烁并显示前一个倒计时值并对两个值进行倒计时, 在上一个和当前倒计时值之间闪烁。如何让计时器忘记之前的值,只使用当前计时器值。
我尝试使用取消功能,但没有用,我认为它是我的滴答功能中的东西,但我不确定它是什么。
这是我的代码:
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();
}
};
你可能没有取消上一个。
保存 CountDownTimer mcountDownTimer
的实例(顺便说一句,将其重命名为 mCountDownTimer
)
在设置新的之前,使用以下方法取消旧的:
mCountDownTimer.cancel();
然后才创建新实例。
例如:
CountDownTimer mCountDownTimer;
@Override
public void onCreate...
...
if (mCountDownTimer != null) mCountDownTimer.cancel();
mCountDownTimer = new CountDownTimer...
您好,我正在开发一款带有倒数计时器的应用程序。单击按钮时,计时器根据用户在文本字段中的输入启动,当我更改文本字段的值并且计时器的新值启动时,它会闪烁并显示前一个倒计时值并对两个值进行倒计时, 在上一个和当前倒计时值之间闪烁。如何让计时器忘记之前的值,只使用当前计时器值。
我尝试使用取消功能,但没有用,我认为它是我的滴答功能中的东西,但我不确定它是什么。
这是我的代码:
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();
}
};
你可能没有取消上一个。
保存 CountDownTimer mcountDownTimer
的实例(顺便说一句,将其重命名为 mCountDownTimer
)
在设置新的之前,使用以下方法取消旧的:
mCountDownTimer.cancel();
然后才创建新实例。
例如:
CountDownTimer mCountDownTimer;
@Override
public void onCreate...
...
if (mCountDownTimer != null) mCountDownTimer.cancel();
mCountDownTimer = new CountDownTimer...