Android中Handler实现倒计时的两种方式
程序员文章站
2024-02-06 19:53:28
背景:
最近项目中,正好做到登录/注册这个功能块。它需要通过发送验证码,在规定的时间内用验证码来完成登录/注册。之前的项目中也有这个功能,但是觉得太复杂了,只好自己重新实...
背景:
最近项目中,正好做到登录/注册这个功能块。它需要通过发送验证码,在规定的时间内用验证码来完成登录/注册。之前的项目中也有这个功能,但是觉得太复杂了,只好自己重新实现一遍。用handler来做,觉得代码简介,逻辑也清楚。
代码一:
//在向服务端发送获取验证码成功的回调函数中,开始发消息: mhandler.obtainmessage(); mhandler.sendemptymessage(msg_code); //消息的处理: private static final int msg_code = 0; private int limittime = 121; private handler mhandler = new handler(new handler.callback() { @override public boolean handlemessage(message msg) { if(msg.what==msg_code){ limittime--; if(limittime>0){ mhandler.sendemptymessagedelayed(msg_code,1000); mbtnverify.settext("倒计时:"+limittime+"s"); }else{ mbtnverify.settext("获取验证码"); } return true; } return false; } });
代码二:
//在向服务端发送获取验证码成功的回调函数中,开始发消息: mhandler.post(myrunnale); //消息的处理: private int time = 11; private handler mhandler = new handler(); private runnable myrunnale = new runnable() { @override public void run() { time--; if(time>0){ mhandler.postdelayed(myrunnale,1000); mtvchange.settext("剩余"+time+"s"); }else{ mtvchange.settext("完毕"); } } };
从上述代码中可以看出:使用handler.post(runnable) 是一个发布messgae的便利方法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。