如何停止 CountDownTimer?

How to stop the CountDownTimer?

我应该在哪里编辑这段代码,以便我可以停止倒计时?

如何在开始下一个新的倒计时之前删除旧的?

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();

    }

代码如下:

   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();

                        }

我做了这两行。我当时工作正常:

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();

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

CountDownTimer(60000 *  time, 1000)

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