📜  Android 中的 CountDownTimer 示例(1)

📅  最后修改于: 2023-12-03 14:59:15.987000             🧑  作者: Mango

Android 中的 CountDownTimer 示例

CountDownTimer 是 Android 中的一个 Timer 类,它可以在指定时间内每隔一段时间执行一次操作并更新剩余时间。它非常适合做倒计时或轮询操作。

创建 CountDownTimer

在创建 CountDownTimer 时,需要指定倒计时时间、更新间隔和操作。

CountDownTimer countDownTimer = new CountDownTimer(60000, 1000) {

    @Override
    public void onTick(long millisUntilFinished) {
        // 在倒计时过程中更新剩余时间
        textView.setText(String.valueOf(millisUntilFinished / 1000));
    }

    @Override
    public void onFinish() {
        // 倒计时结束后执行操作
        textView.setText("Done");
    }
};

在上面的示例中,倒计时时间为 60 秒,更新间隔为 1 秒。在 onTick 方法中可以更新剩余时间的显示,在 onFinish 方法中可以执行倒计时结束后的操作。

启动和取消 CountDownTimer

创建 CountDownTimer 后,需要使用 start() 方法来启动,使用 cancel() 方法来取消。

countDownTimer.start(); // 启动倒计时
countDownTimer.cancel(); // 取消倒计时
完整代码示例
public class MainActivity extends AppCompatActivity {

    private TextView textView;
    private CountDownTimer countDownTimer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.text_view);

        countDownTimer = new CountDownTimer(60000, 1000) {

            @Override
            public void onTick(long millisUntilFinished) {
                textView.setText(String.valueOf(millisUntilFinished / 1000));
            }

            @Override
            public void onFinish() {
                textView.setText("Done");
            }
        };

        countDownTimer.start(); // 启动倒计时
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        countDownTimer.cancel(); // 取消倒计时
    }
}

在上面的完整代码示例中,我们定义一个倒计时时间为 60 秒,更新间隔为 1 秒的 CountDownTimer,并在 onTick 方法中更新 TextView 的显示。在 onDestroy 方法中取消 CountDownTimer,以避免内存泄漏。