获取验证码倒计时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);

//此处可以启动异步线程去请求获取验证码等操作了

 

posted @ 2015-02-05 15:29  寡蛋  阅读(177)  评论(0)    收藏  举报