Android中Handler实现倒计时的两种方式
背景:
最近项目中,正好做到登录/注册这个功能块。它需要通过发送验证码,在规定的时间内用验证码来完成登录/注册。之前的项目中也有这个功能,但是觉得太复杂了,只好自己重新实现一遍。用Handler来做,觉得代码简介,逻辑也清楚。
代码一:
//在向服务端发送获取验证码成功的回调函数中,开始发消息:
mHandler.obtainMessage();
mHandler.sendEmptyMessage(MSG_CODE);
//消息的处理:
privatestaticfinalintMSG_CODE=0;
privateintlimitTime=121;
privateHandlermHandler=newHandler(newHandler.Callback(){
@Override
publicbooleanhandleMessage(Messagemsg){
if(msg.what==MSG_CODE){
limitTime--;
if(limitTime>0){
mHandler.sendEmptyMessageDelayed(MSG_CODE,1000);
mBtnVerify.setText("倒计时:"+limitTime+"s");
}else{
mBtnVerify.setText("获取验证码");
}
returntrue;
}
returnfalse;
}
});
代码二:
//在向服务端发送获取验证码成功的回调函数中,开始发消息:
mHandler.post(myRunnale);
//消息的处理:
privateinttime=11;
privateHandlermHandler=newHandler();
privateRunnablemyRunnale=newRunnable(){
@Override
publicvoidrun(){
time--;
if(time>0){
mHandler.postDelayed(myRunnale,1000);
mTvChange.setText("剩余"+time+"s");
}else{
mTvChange.setText("完毕");
}
}
};
从上述代码中可以看出:使用Handler.post(Runnable)是一个发布Messgae的便利方法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 新人红包祝福语简短精辟
11 幼师给毕业祝福语简短
12 生日高考祝福语妹妹简短
13 下飞机祝福语简短英文
14 元宵发客户祝福语简短
15 爸妈金婚文案祝福语简短
16 新郎朋友红包祝福语简短
17 虎年五一祝福语大全简短
18 出阁宴祝福语姐姐简短