Handler实现倒计时 Android中Handler实现倒计时的两种方式
huang_xiao_yu 人气:3想了解Android中Handler实现倒计时的两种方式的相关内容吗,huang_xiao_yu在本文为您仔细讲解Handler实现倒计时的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Handler实现倒计时,Android,Handler,倒计时,Android实现倒计时,下面大家一起来学习吧。
背景:
最近项目中,正好做到登录/注册这个功能块。它需要通过发送验证码,在规定的时间内用验证码来完成登录/注册。之前的项目中也有这个功能,但是觉得太复杂了,只好自己重新实现一遍。用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的便利方法。
加载全部内容