60s倒计时


        客户端注册时,通过手机号获取短信验证码,此时会向服务端发送请求,客户端需要变更button状态,达到60s倒计时效果。

Button loadSMSPwd = null;

private void onButtonClick() {

    loadSMSPwd.setClickable(false);
    loadSMSPwd.setTextColor(Color.GRAY);
    timer();
}

private void timer() {
	
	mTimer = new Timer();
	mTimer.schedule(new TimerTask() {
		@Override
		public void run() {
			handler.sendEmptyMessage(0);
		}
	}, 0,1000);
}

Handler handler = new Handler() {

	@Override
	public void handleMessage(Message msg) {
		switch(msg.what) {
		case 0: 
		if(count > 0){
			loadSMSPwd.setText(String.valueOf(count--) + "秒");
		}else{
			if(mTimer != null) {
				mTimer.cancel();
				mTimer = null;
			}
			count = 60;
			loadSMSPwd.setClickable(true);
    			loadSMSPwd.setText("获取验证码");
    			loadSMSPwd.setTextColor(Color.BLACK);
		}
		break;
	}
}


你可能感兴趣的:(60s倒计时)