android中的CountDownTimer - 如何重启它

use*_*595 12 android counter

我重启一个CountDownTimer.我在这里读了很多问题,但没有一个答案对我有帮助.当我使用以下代码时

if(Const.counter != null){
    Const.counter.cancel();
    Const.counter = null;
}


Const.counter = new CustomTimerTask(Const.currentLevel.timeGoal * 1000,1000);
Const.counter.start();
Run Code Online (Sandbox Code Playgroud)

我开始一个新的柜台,但旧的柜台也继续工作.请hekp我解决它.

Laz*_*nja 6

您可以通过取消和重新启动来实现它.以下示例应该有效.

CountDownTimer mCountDownTimer = new CountDownTimer(500, 1000) {

    @Override
    public void onTick(long millisUntilFinished) {}

    @Override
    public void onFinish() {
        isCounterRunning = false;
    }
};


boolean isCounterRunning  = false;

private void yourOperation() {
    if( !isCounterRunning ){
        isCounterRunning = true;
        mCountDownTimer.start();
    }
    else{
        mCountDownTimer.cancel(); // cancel
        mCountDownTimer.start();  // then restart
    }

}
Run Code Online (Sandbox Code Playgroud)

  • mCountDownTimer.cancel(); //没有重置计数器 (5认同)

小智 5

我在这里做了一些不同的把戏。希望这会帮助你。

if (myCountDownTimer != null) {
            myCountDownTimer.cancel();
        }
        myCountDownTimer = new MyCountDownTimer(10000, 500);
        myCountDownTimer.start();
Run Code Online (Sandbox Code Playgroud)