CountDownTimerを再起動します。私はここでたくさんの質問を読みましたが、答えの誰も私を助けませんでした。次のコードを使用すると
if(Const.counter != null){
Const.counter.cancel();
Const.counter = null;
}
Const.counter = new CustomTimerTask(Const.currentLevel.timeGoal * 1000,1000);
Const.counter.start();
新しいカウンターを開始しますが、古いカウンターも引き続き機能します。解決してください。
キャンセルして再起動することで実現できます。次の例が機能するはずです。
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
}
}
私はここでいくつかの異なるトリックをしました。これがお役に立てば幸いです。
if (myCountDownTimer != null) {
myCountDownTimer.cancel();
}
myCountDownTimer = new MyCountDownTimer(10000, 500);
myCountDownTimer.start();
もう一度start()
メソッドを呼び出します。
CountDownTimer cdt = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
this.start(); //start again the CountDownTimer
}
};
クイズのカウントダウンタイマー
if(countDownTimer!=null)
{
countDownTimer.cancel();
countDownTimer.start();
}
else {
countDownTimer = new CountDownTimer(30000, 1000) {
public void onTick(long l) {
mtimer.setText("remaining time" + l / 1000);//mtime is a textview
}
public void onFinish() {//here mnext is the button from which we can get next question.
mnext.performClick();//this is used to perform clik automatically
}
}.start();