2017-05-07 8 views
0

このコードを編集する必要があります。カウントダウンを停止できますか?CountDownTimerを停止するには?

次の新しいCountDownを開始する前に古いものを削除するにはどうすればよいですか?ここ

public void MyCounter1(){ 
 
     new CountDownTimer(60000, 1000) { 
 
      public void onTick(long millisUntilFinished) { 
 
       txt_timer.setText("Left time : " + millisUntilFinished/1000);       
 
      } 
 
      public void onFinish() { 
 
       txt_timer.setText("done"); 
 
      } 
 
     }.start(); 
 

 
    }

+0

青線をカット! – hobbs

答えて

0

コードです:

CountDownTimer timer= null; 
      public void MyCounter1(){ 
       timer =new CountDownTimer(60000, 1000) { 
        public void onTick(long millisUntilFinished) { 
         txt_timer.setText("Left time : " + millisUntilFinished/1000); 
        } 
        public void onFinish() { 
         txt_timer.setText("done"); 
        } 
       }; 
       timer.start(); 

      } 

// To stop & start new timer check not null of timer instance first then cancel existing timer & start new one 
      if(timer != null){ 
       timer.cancel(); 
       MyCounter1(); 
      } 

は、あなたが最初のインスタンスをキャンセルして新しいものを開始したい場合は、呼び出されますonFinish方法でライン上に追加することができますまた、タイマーは彼の時間を終える。 これをチェックしてください:

CountDownTimer timer= null; 
     public void MyCounter1(){ 
          timer =new CountDownTimer(60000, 1000) { 
           public void onTick(long millisUntilFinished) { 
            txt_timer.setText("Left time : " + millisUntilFinished/1000); 
           } 
           public void onFinish() { 
            txt_timer.setText("done"); 
            if(timer != null){ 
             timer.cancel(); 
             MyCounter1(); 
            } 
           } 
          }; 
          timer.start(); 

         } 
+0

私のコードはすべての第2の 'if(my_condition == 1)'をチェックするので、私のコードは以下の私の解決策よりも優れていると思います。これは必要ありません。ありがとう – Json

0

私はこれらの2行を行いました。私は細かい時間で動作します:

public void MyCounter1(){ 
     CountDownTimer countDownTimer = new CountDownTimer(60000, 1000) { 
      public void onTick(long millisUntilFinished) { 
       if(my_condition=1){ //1- just make my_condition<>1 to stop the counter 
       txt_timer.setText("Left time : " + millisUntilFinished/1000); }      
      } 
      public void onFinish() { 
       countDownTimer.cacel(); // 2- delete old one 
       txt_timer.setText("done"); 
      } 
     }.start(); 

    } 
0
private int time = 10; //example 10 min.  

CountDownTimer(60000 * time, 1000) 

@Override 
      public void onFinish() { 
       txt_timer.setText("done"); 
       cancel(); 
       time = 0; 
+0

答えに説明を追加してください – Ibo

関連する問題