项目中经常用到倒计时的功能,比如说限时抢购,手机获取验证码等等。而google官方也帮我们封装好了一个类:CountDownTimer,使我们的开发更加方便;CountDownTimer是一个抽象类,有两个抽象方法,它的API很简单。
1、public abstract void onTick(long millisUntilFinished);//这个是每次间隔指定时间的回调,millisUntilFinished:剩余的时间,单位毫秒。
2、public abstract void onFinish();//这个是倒计时结束的回调。
基本使用方法:我们以短信验证码的倒计时来看,点击获取验证码,倒计时60s不可点击。
new CountDownTimer(60 * 1000, 1000) {
@Override
public void onFinish() {
if (tvCode != null) {
tvCode.setText("重新获取");
tvCodeWr.setTextColor(Color.parseColor("#E94715"));
tvCode.setClickable(true);
tvCode.setEnabled(true);
}
cancel();
}
@Override
public void onTick(long millisUntilFinished) {
if (tvCode != null) {
tvCode.setClickable(false);
tvCode.setEnabled(false);
tvCode.setText(millisUntilFinished / 1000 + "s");
tvCode.setTextColor(Color.parseColor("#999999"));
}
}
}.start();
点击按钮,获取验证码成功之后就可以执行以上操作,最后一定要start,不然不会执行。