//new倒计时对象,总共的时间,每隔多少秒更新一次时间 myCountDownTimer= new MyCountDownTimer(60000, 1000); send.setOnClickListener(new View.OnClickListener() { @SuppressLint("WrongConstant") @Override public void onClick(View arg0) { System.out.println("点击发送验证码"); number1= number.getText().toString().trim(); if(isPhoneNumber(number1)){ reqVerificationEntityRegister(number1); myCountDownTimer.start(); }else{ Toast.makeText(RegisterFirstActivity.this, "请输入正确的手机号!", Toast.LENGTH_SHORT).show(); } } });
class MyCountDownTimer extends CountDownTimer { public MyCountDownTimer(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); } //计时过程 @Override public void onTick(long l) { //防止计时过程中重复点击 send.setClickable(false); send.setText(l / 1000 + "秒重发"); } //计时完毕的方法 @Override public void onFinish() { //重新给Button设置文字 send.setText("重新获取"); //设置可点击 send.setClickable(true); } } int codeFromSrever=2; private class VerificationEntity { int code; String msg; @Override public String toString() { return "VerificationEntity{" + "code=" + code + ", msg='" + msg + '\'' + '}'; } } private VerificationEntity onRepVerificationEntity(JSONObject json) throws JSONException { logger.d("registerFirst#onRepVerificationEntity"); if (json == null) { logger.e("registerFirst#json is null"); return null; } logger.d("registerFirst#onRepVerificationEntity json:%s", json); int code = json.getInt("code"); if (code != 0) { logger.e("registerFirst#code is not right:%d, json:%s", code, json); // return null; } VerificationEntity addrsEntity = new VerificationEntity(); addrsEntity.code = code; logger.d("registerFirst#got VerificationEntity:%s", addrsEntity); return addrsEntity; } public void getCodeFromServer(VerificationEntity verificationEntity){ codeFromSrever= verificationEntity.code; }
/** * 发送验证码 */ public void reqVerificationEntityRegister(String number) { logger.d("socket#VerificationEntity."); getVerificationClient.setUserAgent("Android-TT"); String url=SystemConfigSp.instance().getStrConfig(SystemConfigSp.SysCfgDimension.LOGINSERVER).substring(0,SystemConfigSp.instance().getStrConfig(SystemConfigSp.SysCfgDimension.LOGINSERVER).length()-11); System.out.println(url); getVerificationClient.get(url+"/sendsms/"+number+"", new BaseJsonHttpResponseHandler(){ @Override public void onSuccess(int i, Header[] headers, String s, Object o) { logger.d("socket#req VerificationEntity onSuccess, response:%s", s); VerificationEntity msgServer = (VerificationEntity) o; System.out.println(msgServer); if(msgServer == null){ return ; } getCodeFromServer(msgServer); } @Override public void onFailure(int i, Header[] headers, Throwable throwable, String responseString, Object o) { logger.d("socket#req VerificationEntity Failure, errorResponse:%s", responseString); } @Override protected Object parseResponse(String s, boolean b) throws Throwable { /*子类需要提供实现,将请求结果解析成需要的类型 异常怎么处理*/ JSONObject jsonObject = new JSONObject(s); VerificationEntity msgVerificationEntity = onRepVerificationEntity(jsonObject); return msgVerificationEntity; } }); }