如何在CountDownTimer上实现暂停/恢复按钮?

时间:2018-04-12 16:35:17

标签: java android

我有一个简单的倒数计时器应用程序。我可以启动和暂停计时器以及重置时间,但暂停后我无法恢复。我认为switch case比当前使用的if / else语句效果更好。

public void timerEnabler (View v) { 
    if (!activeCounter) {
        activeCounter = true;
        timeSet.setEnabled(false);
        stopStartButton.setText("Pause");
        rotateAnimation();
        countTimer = new CountDownTimer(timeSet.getProgress() * 1000 + 100, 1000) {

            @Override
            public void onTick(long millisUntilFinished) {
               updateTimer((int) millisUntilFinished / 1000);
               timeRemain = millisUntilFinished;
            }

            @Override
            public void onFinish() {
                resetTimer();
                MediaPlayer mplayer = MediaPlayer.create(getApplicationContext(), R.raw.alarm_sound);
                mplayer.start();
                backgroundImage.clearAnimation();
            }
        }.start();
    } else (activeCounter) { //pause counter
            countTimer.cancel();
            backgroundImage.clearAnimation();
            stopStartButton.setText("Resume");
    }
}

我希望每次用户点击暂停/恢复时,计时器都会继续并暂停。这是通过相同的按钮完成的。第二个按钮与计时器的重置有关。使用搜索栏timeSet选择所需的时间。

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

我总是将此类用于CountDownTimer。来源bverc/CountDownTimer.java

public function getTokenByEmail($u_code){
    $stmt = $this->con->prepare("SELECT `token` FROM `user_reg` WHERE 'u_code'= ?");
    $stmt->bind_param("s",$u_code);
    $stmt->execute(); 
    $result = $stmt->get_result()->fetch_assoc();
    return array($result['token']);        
    }