美文网首页
Android开发中,定义验证码定时器

Android开发中,定义验证码定时器

作者: 伤心的鱼嗯 | 来源:发表于2018-11-28 10:24 被阅读0次

android中验证码定时器


第一步,创建内部或外部引用类(这个自己随便,我用的是内部类)

/*

* 发送验证码倒数计时

*/

class MyCountDownTimer extends CountDownTimer{

/*

* 倒数计时函数

*/

public MyCountDownTimer(long millisInFuture, long countDownInterval) {

super(millisInFuture, countDownInterval);

// TODO Auto-generated constructor stub

}

/*

* (计时完毕的方法)

* @see android.os.CountDownTimer#onFinish()

*/

@Override

public void onFinish() {

// TODO Auto-generated method stub

Handler.sendEmptyMessage(2); //发送消息,通知主线程这里已经计时结束。

}

/*

* (计时过程)

* @see android.os.CountDownTimer#onTick(long)

*/

@Override

public void onTick(long millisUntilFinished) {

// TODO Auto-generated method stub

Handler.sendEmptyMessage(1); //通知主线程,这里开始计时了。

sms=millisUntilFinished; //这里我定义了一个全局变量sms ,用来把millisUntilFinished传递给主线程。

}

}

第二步,初始化timer 并定义handler,重写handleMessage()方法。

private final MyCountDownTimer timer=new MyCountDownTimer(60000, 1000);

private long sms;

private Handler Handler=new Handler() {

public void handleMessage(android.os.Message msg) {

switch (msg.what) {

case 1:

btn_sendVerificationCode.setClickable(false);

btn_sendVerificationCode.setTextColor(getResources().getColor(R.color.gray));

btn_sendVerificationCode.setText(sms/1000+"秒后");

break;

case 2:

btn_sendVerificationCode.setText("发送验证码");

btn_sendVerificationCode.setClickable(true);

btn_sendVerificationCode.setTextColor(getResources().getColor(R.color.blue));

break;

case 3:

Toast.makeText(MainActivity.this, "您的验证码已发送,5分钟内有效!", Toast.LENGTH_LONG).show();

break;

case 4:

Toast.makeText(MainActivity.this, "手机号码不能为空!", Toast.LENGTH_LONG).show();

break;

case 5:

Toast.makeText(MainActivity.this, "请求失败!", Toast.LENGTH_LONG).show();

break;

default:

break;

}

};

};

第三步,开启子线程,启动定时器。

new Thread(new Runnable() {

@Override

public void run() {

// TODO Auto-generated method stub

timer.start();

}

}).start();

相关文章

网友评论

      本文标题:Android开发中,定义验证码定时器

      本文链接:https://www.haomeiwen.com/subject/bufaqqtx.html