使用Timer 定时器,结合TimerTask,HandlerMessage完成验证码发送功能
2017-03-17 09:58
288 查看
项目需求:点击“发送验证码”,开始倒计时,倒计时为0时显示重新发送。
1.Timer的使用:Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。
声明:
private Timer timer;
private MyTasker timerTask;
private int i;
发送验证码点击事件:
i=60;//定义从60s开始计时
timerTask=new MyTasker();
timer=new Timer();
timer.schedule(timerTask,0,1000);这里的timer.schedule(timerTask,0,100);
2.TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。
我们自定义个MyTimerTask类继承TimerTask;
class MyTasker extends TimerTask{
@Override
public void run() {
handler.sendEmptyMessage(i--);
}
}
3.通过handlemessage改变主线程UI,
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what==0||msg.what<0){
tv_msg.setText("重新发送");
timer.cancel();
timerTask.cancel();
}else {
tv_msg.setText(msg.what+"秒");
}
super.handleMessage(msg);
}
};
实际项目中,我们点击发送验证码后,调用后台接口,接口成功后进行倒计时,同时设置点击按钮setEable(false),这样优化用户体验。
1.Timer的使用:Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。
声明:
private Timer timer;
private MyTasker timerTask;
private int i;
发送验证码点击事件:
i=60;//定义从60s开始计时
timerTask=new MyTasker();
timer=new Timer();
timer.schedule(timerTask,0,1000);这里的timer.schedule(timerTask,0,100);
//第一个参数 TimerTask 类,实现 public void run() 方法,因为 TimerTask 类实现了 Runnable 接口。
//第二个参数"0"的意思是:(0就表示无延迟) 当你调用该方法后,该方法必然会调用 TimerTask 类 TimerTask 类 中的 run() 方法,这个参数就是这两者之间的差值,转换成汉语的意思就是说,用户调用 schedule() 方法后,要等待这么长的时间才可以第一次执行 run() 方法。
//第三个参数"60*60*1000"的意思就是: (单位是毫秒60*60*1000为一小时) (单位是毫秒3*60*1000为三分钟) 第一次调用之后,从第二次开始每隔多长的时间调用一次 run() 方法
2.TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。
我们自定义个MyTimerTask类继承TimerTask;
class MyTasker extends TimerTask{
@Override
public void run() {
handler.sendEmptyMessage(i--);
}
}
3.通过handlemessage改变主线程UI,
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.what==0||msg.what<0){
tv_msg.setText("重新发送");
timer.cancel();
timerTask.cancel();
}else {
tv_msg.setText(msg.what+"秒");
}
super.handleMessage(msg);
}
};
实际项目中,我们点击发送验证码后,调用后台接口,接口成功后进行倒计时,同时设置点击按钮setEable(false),这样优化用户体验。
相关文章推荐
- java--timer--task定时器使用实例
- php发送短信验证码完成注册功能
- 关于Java Web 使用Java的TimerTask, 触发定时器(执行某些任务)的实例
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- Java 中Timer和TimerTask 定时器使用
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- 使用Handler和Timertask实现定时器
- 一个完整的Nodejs项目 完成连接数据库(MySQL),登陆、注册功能 session的使用 和发送邮件
- 按钮发送验证码等待时间效果——定时器setInterval使用
- JAVAWeb使用QQ邮箱发送验证码功能实现
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- php发送短信验证码完成注册功能
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- php发送短信验证码完成注册功能
- php发送短信验证码完成注册功能
- 使用JSP与JavaBean结合JSTL标签,完成图书查询功能