Android验证码倒计时实现方式总结
几乎所有的APP里面都有验证码倒计时按钮,自己在项目中也尝试,简单总结为以下三种:
1、使用线程和Handler的方式,定时刷新倒计时数字,这种方式容易导致内存泄露,所以一般都使用弱引用,控制数字的刷新。
2、自定义倒计时按钮
3、使用Android提供的CountDownTimer结合TextView实现倒计时功能
方式一是我刚开始做android的时候,因为那个时候android只学了个基础,学会了使用线程结合Handler的方式更新视图,具体实现如下:
private static class MyHandler extends android.os.Handler{
WeakReference<MainActivity> mActivity;
publicMyHandler(MainActivity activity) {
mActivity= new WeakReference<>(activity);
}
@Override
publicvoid handleMessage(Message msg) {
// TODO Auto-generated method stub
final MainActivity mf = mActivity.get();
super.handleMessage(msg);
switch(msg.what) {
case 0:
mf.sendOne.setText("重新发送");
mf.count = 60;
mf.sendOne.setEnabled(true);
break;
case 1:
mf.sendOne.setEnabled(false);
mf.sendOne.setText(mf.count+ "秒");
break;
}
}
}
private void sendCode(){
finalRunnable r = new Runnable() {
publicvoid run() {
runningOne= true;
while(count >