📜  如何在 android 中停止倒数计时器 (1)

📅  最后修改于: 2023-12-03 15:24:06.477000             🧑  作者: Mango

如何在 Android 中停止倒数计时器

在 Android 中,我们经常需要倒数计时器来实现一些需要倒计时的功能,比如验证码的倒计时、游戏倒计时等等。但是,在有些情况下,我们需要停止已经启动的倒数计时器。本文将介绍如何在 Android 中停止倒数计时器。

定义倒数计时器

首先,我们需要定义一个倒数计时器类来实现倒计时的功能。这里,我们使用 Android 自带的 CountDownTimer 类来实现倒计时。

public class CountDownTimerWrapper extends CountDownTimer {
    private OnCountDownTimerListener mListener;

    public CountDownTimerWrapper(long millisInFuture, long countDownInterval, OnCountDownTimerListener listener) {
        super(millisInFuture, countDownInterval);
        mListener = listener;
    }

    public interface OnCountDownTimerListener {
        void onTick(long millisUntilFinished);
        void onFinish();
    }

    @Override
    public void onTick(long millisUntilFinished) {
        mListener.onTick(millisUntilFinished);
    }

    @Override
    public void onFinish() {
        mListener.onFinish();
    }
}

上述代码定义了一个 CountDownTimerWrapper 类,并且实现了一个 OnCountDownTimerListener 接口,用于监听倒数计时器的运行状态。在 onTick 回调函数中,我们将当前倒计时的剩余时间传递给 mListener,以更新倒计时的 UI;在 onFinish 回调函数中,我们通知 mListener 倒计时已经结束。

启动倒数计时器

在正式启动倒数计时器之前,我们需要先创建一个 CountDownTimerWrapper 类的实例,并且实现 OnCountDownTimerListener 接口中的两个回调函数。

CountDownTimerWrapper mCountDownTimer = new CountDownTimerWrapper(60000, 1000, new CountDownTimerWrapper.OnCountDownTimerListener() {
    @Override
    public void onTick(long millisUntilFinished) {
        mTextView.setText(String.valueOf(millisUntilFinished / 1000));
    }

    @Override
    public void onFinish() {
        mTextView.setText("0");
    }
});

上述代码创建了一个 60 秒倒计时器,并且在 onTick 回调函数中更新了一个 TextView 控件的文本内容。

启动倒数计时器的代码如下:

mCountDownTimer.start();
停止倒数计时器

有时候,我们需要在倒计时器运行期间停止它的运行。这个时候,我们可以调用 CountDownTimerWrapper 类的 cancel() 方法。

mCountDownTimer.cancel();
总结

通过上述步骤,我们就可以在 Android 中实现一个倒数计时器,并且能够在需要的时候停止它的运行。