Android快速实现倒计时按钮

一开始想过用子线程来实现,还好搜索了一下,发现 Android 自带了一个倒计时类,正好适合,这个类就是CountDownTimer,创建它需要提供两个参数,一个是总计时时间(单位是毫秒),一个是步长,也就是一次走多少毫秒.然后还需要实现它的两个接口.

  1. void onTick(long millisUntilFinished)
    当时间每走一次就会调用这个方法,参数是还剩下多少时间没走,在这里禁用按钮,然后显示还剩多少时间
  2. void onFinish()
    这个一看就知道是倒计时完成了,会回调它,可以在这里启用按钮

上示例代码

//倒计时60秒,这里不直接写60000,而用1000*60是因为后者看起来更直观,每走一步是1000毫秒也就是1秒
CountDownTimer timer = new CountDownTimer(1000 * 60, 1000) {
    @SuppressLint("DefaultLocale")
    @Override
    public void onTick(long millisUntilFinished) {
        button.setEnabled(false);
        button.setText(String.format("已发送(%d)",millisUntilFinished/1000));
    }

    @Override
    public void onFinish() {
        button.setEnabled(true);
        button.setText("重新获取");
    }
};
timer.start();

最后一定要记得 start()

添加新评论