2013-11-15 14 views
8

私はCountDownTimerを再起動します。私はここでたくさんの質問を読んだが、答えの誰も私を助けなかった。 私は次のコードアンドロイドのCountDownTimer - 再起動方法

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


Const.counter = new CustomTimerTask(Const.currentLevel.timeGoal * 1000,1000); 
Const.counter.start(); 

を使用すると、私は新しいカウンタを開始しますが、古いものでも仕事を続けています。私はそれを解決してください。

+0

コモノメータを使用しようとしています...リセットできます – KOTIOS

答えて

4

キャンセルして再開することで実現できます。次の例は動作するはずです。

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 
    } 

} 
+2

mCountDownTimer.cancel(); //カウンタをリセットしない –

2

ここでいくつかのトリックを行いました。これがあなたを助けることを願っています。

if (myCountDownTimer != null) { 
      myCountDownTimer.cancel(); 
     } 
     myCountDownTimer = new MyCountDownTimer(10000, 500); 
     myCountDownTimer.start(); 
関連する問題