Android:CountDownTimerでカウントダウン機能を実現

1702 ワード

Android:CountDownTimerでカウントダウンを実現
ラベル(スペース区切り):Android,CountDown,CountDownTimer
Step00. 公式
CountDownTimer:カウントダウンは一定間隔で実行され、カウントダウン実行中に具体的な通知が得られます.公式ドキュメント:https://developer.android.com/reference/android/os/CountDownTimer.html日语原文:http://www.cnblogs.com/over140/archive/2011/12/20/2294220.html
Step01.シンプルな使用
使用:30秒のカウントダウンを設定し、textviewに具体的な残り時間を表示します.実行が終了すると.「完了」が表示されます.
CountDownTimer countDownTimer = new CountDownTimer(30*1000, 1000) {
     public void onTick(long millisUntilFinished) {
        mTextField.setText("    : " + millisUntilFinished / 1000 + " ");
     }

     public void onFinish() {
         mTextField.setText("  !");
     }
  }

実行:countDownTimer.start(); キャンセル:cancel(); キャンセルが実行されると、再起動(start)がカウントダウンを再開します.前回キャンセルしたときの残り時間ではありません.
Step02. 一時停止(Pause)
まず初期化を書き換える必要があります
//millisInFuture          
public void initCountDownTimer(long millisInFuture) {
    mCountDownTimer = new CountDownTimer(millisInFuture, 1000) {
        @Override
        public void onTick(long millisUntilFinished) {
            curTime = millisUntilFinished;//      ;
            mTimerTv.setText(TimeTools.getCountTimeByLong(millisUntilFinished));
        }

        public void onFinish() {
            mTimerTv.setText("  !");
        }
    };
}

一時停止または再生を続行
//isPause     ,   false.
if (!isPause) {
    isPause = true;
    mCountDownTimer.cancel();
} else {//    
    if (curTime != 0) {
        //               
        initCountDownTimer(curTime);
        mCountDownTimer.start();
        isPause = false;
    }
}

step03.ソースコード
Github Code