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

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();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容