您的位置:首页 > 移动开发 > Android开发

Android Timer实现发送验证码倒计时

2018-02-28 16:40 513 查看
声明:btnGetCode是获取验证码的按钮控件 /**
* 发送验证码倒计时
*/
public void sendCode() {
//定义数组,90是倒计时的时间
final int[] codeSecond = {90};
//使用Timer进行倒计时
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
RegisterActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
if (codeSecond[0] <= 0) {
btnGetCode.setText("重新发送验证码");
btnGetCode.setClickable(true);//设置可点击
//执行完一段之后要将上一个计时器关闭,否则再次开启会有两个计时器同时运行
timer.cancel();
} else {
btnGetCode.setText("已发送(" + codeSecond[0] + ")");
codeSecond[0]--;
btnGetCode.setClickable(false);//设置不可点击
}
}
});
}
}, 0, 1000);
}
在btnGetCode里面调用这个方法 btnGetCode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sendCode();//调用方法
}
});最后别忘了在onDestroy里面讲timer计时器给销毁了,
否则finish掉当前页面之后还会继续倒计时,就会造成程序crash /**
* 销毁
*/
@Override
protected void onDestroy() {
super.onDestroy();
timer.cancel();//销毁掉倒计时
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: