以前使用倒计时都是自己写的,通过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 @Override 10 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 @Override 18 public void onTick(long millisUntilFinished) { 19 // millisUntilFinished 将从30000,29000...直到 0. 20 btn_getprov.setText("重新发送(" + (millisUntilFinished / 1000) + "s)"); 21 } 22 23 @Override 24 public void onFinish() { 25 //一次倒计时结束,用户可以再次点击按钮--"获取验证码" 26 btn_getprov.setText("获取验证码"); 27 btn_getprov.setEnabled(true); 28 } 29 };
// 开启倒计时
btn_getprov.setEnabled(false);
mCountDownTimer.start();
30 } 31 }