/**
* 计时器
*/
private class TimeCount extends CountDownTimer {
public TimeCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) {
if (getCodeView != null) {
getCodeView.setCodeClickable(false).setCodeText("(" + millisUntilFinished / 1000 + ") 秒后可重新发送");
}
}
@Override
public void onFinish() {
if (getCodeView != null) {
getCodeView.setCodeClickable(true).setCodeText("重新获取验证码");
}
}
}
现在验证码验证身份的方式越来越普遍 所以倒计时已经成为每个程序员必备的技能 上面是基础类 getCodeView 是自定义的一个获取验证码的按钮
点击这个按钮获取验证码 调取服务器接口 开始倒计时
if (timeCount == null) {
timeCount = new TimeCount(Type.GET_CODE_TIME, 1000);
}
timeCount.start();
如果接口调取失败 将倒计时终止
timeCount.cancel();
就上面写三部分就可以完成倒计时 Type.GET_CODE_TIME就是倒计时的毫秒值
/**
* 获取验证码倒计时的时间
*/
public static final long GET_CODE_TIME = 60000;