获取验证码倒计时Timer
现在很多时候需要获取验证码,点击后倒计时一分钟,此时需要用到timer。
@SuppressLint("HandlerLeak") private Handler handler = new Handler(){ @Override public void handleMessage(android.os.Message msg) { switch (msg.what) { case 0: time --; tvGetCode.setText(String.format(getString(R.string.login_wait_ontry), time)); break; case 1: if(timer != null) { time = 0; timer.cancel(); timer = null; timerTask = null; } tvGetCode.setClickable(true); tvGetCode.setText(""); break; default: break; } }; };
time = 60; timer = new Timer(); timerTask = new TimerTask() { @Override public void run() { Message msg = handler.obtainMessage(); if(time == 1) {//计时终止 msg.what = 1; } else { msg.what = 0; } handler.sendMessage(msg); } }; timer.schedule(timerTask, 0, 1000);
//此处可以启动异步线程去请求获取验证码等操作了