以前使用倒计时都是自己写的,通过handler实现,才发现android os 已经实现了这个工具类。简单使用如下。 1 import android.app.Activity;
2 import android.os.Bundle; 3 import android.os.CountDownTimer; 4 5 public class CountDownTimerActivity extends Activity { 6 private Button mBtn_getcode;// 用户可点的按钮--"获取验证码" 7 private CountDownTimer mCountDownTimer;// 发送验证码的倒计时工具类 8 9 @Override10 protected void onCreate(Bundle savedInstanceState) {11 super.onCreate(savedInstanceState);12 setContentView(R.layout.activity_countdowntimer);13 mBtn_getcode = findViewById(R.id.btn_getcode);14 // 倒计时工具类:30秒后停止,计时间隔为1秒15 mCountDownTimer = new CountDownTimer(30000, 1000) {16 17 @Override18 public void onTick(long millisUntilFinished) {19 // millisUntilFinished 将从30000,29000...直到 0.20 btn_getprov.setText("重新发送(" + (millisUntilFinished / 1000) + "s)");21 }22 23 @Override24 public void onFinish() {25 //一次倒计时结束,用户可以再次点击按钮--"获取验证码"26 btn_getprov.setText("获取验证码");27 btn_getprov.setEnabled(true);28 }29 }; // 开启倒计时
btn_getprov.setEnabled(false); mCountDownTimer.start();
30 }31 }