Android 中的 CountDownTimer 无法正常工作



倒计时计时器有时会进入onFinish((方法,尽管时间还没有用完

至少我认为这是计时器,因为除了onClick((方法之外,没有其他地方可以切换意图,但错误是当用户不做任何时

有时它会正常运行,但它会随机再次出现,我不敢相信当用户尝试玩游戏时,这个错误不会再次出现

这是代码

public void timer(int time2) {
if (time2==-1)//if the user set no time limit
{
cdt.cancel();
}
cdt= new CountDownTimer(timeleft, 1000) {
@Override
public void onTick(long millisUntilFinished) {
timeleft=millisUntilFinished;
updatetime();
}
@Override
public void onFinish() {
cdt.cancel();
finished();
}
}.start();
}
private void finished() {
Intent goGameOver=new Intent(this, GameOver.class);
boolean end=true;
goGameOver.putExtra("ENDS",end);
startActivity(goGameOver);
}

事实证明,无论何时启动新计时器,旧计时器仍在运行,这会导致计时器以某种方式达到onFinish()方法的错觉,而实际上旧计时器达到了时间限制,因此进入onFinish()方法。

代表问题作者添加

最新更新