Android CountDownTimer 取消倒计时

Android CountDownTimer cancel the counting down

我下面有 class MainActivity,我需要取消其他 class 方法 onBackPressed 的倒计时。我还复制了下面的 CountDownTimer class。我该如何正确地做,有帮助吗?谢谢回复。

 @Override
    public void onCreate(Bundle savedInstanceState) {


    textViewTime = (TextView) findViewById(R.id.tv_Time);
    textViewTime.setText(getString(R.string.countdown_time));

    final CounterClass timer = new CounterClass(10999, 900);
    timer.start();

    btnStop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            timer.cancel();
        }
    });
}

@Override
public void onBackPressed() {
    super.onBackPressed();

// here cancel // 

}

    public class CounterClass extends CountDownTimer {

    public CounterClass(long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);
    }

    @Override
    public void onFinish() {
        textViewTime.setText("COMPLETED");

    }

    @Override
    public void onTick(long millisUntilFinished) {
        long millis = millisUntilFinished;
        String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millis),
                TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
                TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis)));
        textViewTime.setText(hms);
    }
}

CountDownTimer 有一个 cancel() 方法可以调用来终止计时器。

你的 MainActivity 看起来像这样

public class MainActivity extends Activity {

    private final CounterClass timer;

    @Override 
    public void onCreate() {
         timer = new CounterClass(10999, 900);
         timer.start();
         /* rest of the code omitted */
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        timer.cancel()
    }
}