倒计时功能CountDownTimer PK Handler
来源:互联网 发布:电脑txt小说编辑软件 编辑:程序博客网 时间:2024/04/30 12:01
每次实现获取短信验证码或者自动刷新倒计时功能的时候,都会习惯性用Handler实现,这两天,发现了一个Android自带的一个倒计时功能类,好开心。分享一下~
首先,先摆一下之前的实现:
private int mSecondsCount = 0 ;private final Button mGetMSGCodeBtn;private Handler mHandler= new Handler() { @Override public void dispatchMessage(Message msg) { super.dispatchMessage(msg); if (msg.what == 301) { // 验证码倒计时 mSecondsCount--; if (mSecondsCount <= 0) { //倒计时完毕,记得恢复初始状态,完成相应功能 removeMessages(301); } else { //显示当前倒计秒数的数值 mGetMSGCodeBtn.setText(mSecondsCount + "s"); //进行下一秒的倒计时 sendEmptyMessageDelayed(301, 1000); } } } };
在请求接口成功后只需要调用
mHandler.removeMessages(301);//该功能确保当前handler的301请求处于初始状态mHandler.sendEmptyMessage(301);//开始倒计时请求
洋洋洒洒写了一堆老代码之后,发现了新大陆。快看~
private class CountDownSeconds extends CountDownTimer { public CountDownSeconds(long millisInFuture, long countDownInterval) {//构造函数需要传入的参数是:总共要倒计时的时间,每个多长时间显示的数值发生变化 super(millisInFuture, countDownInterval); } @Override public void onFinish() { //此处编写倒计时结束的功能(例如恢复控件的初始状态) mGetMSGCodeBtn.setText("获取短信验证码"); } @Override public void onTick(long millisUntilFinished) { //正在倒计时中 mGetMSGCodeBtn.setText((millisUntilFinished / 1000) + "s"); }}
调用的时候,只需要
private CountDownSeconds mCountDownSeconds; if (mCountDownSeconds != null) { mCountDownSeconds.start();//开始倒计时 }else{ mCountDownSeconds = new CountDownSeconds(60 * 1000, 1000); mCountDownSeconds.start(); }if (mCountDownSeconds != null) { mCountDownSeconds.cancel();//取消倒计时,取消后,如果再调用start()方法,则重新(如上设置的时间,就是又从60s开始)倒计时 }
完毕~撒花~
0 0
- 倒计时功能CountDownTimer PK Handler
- android倒计时功能(CountDownTimer)
- 利用CountDownTimer实现倒计时功能
- Android CountDownTimer 实现倒计时功能
- 使用CountDownTimer实现倒计时功能
- CountDownTimer---android倒计时功能的实现(CountDownTimer)
- android倒计时功能的实现(CountDownTimer)
- Android利用CountDownTimer类实现倒计时功能
- android倒计时功能的实现(CountDownTimer)
- android倒计时功能的实现(CountDownTimer)
- android倒计时功能的实现(CountDownTimer)
- android倒计时功能的实现(CountDownTimer)
- android倒计时功能的实现(CountDownTimer)
- Android使用CountDownTimer实现倒计时功能
- Android倒计时功能的实现(CountDownTimer)
- Android 倒计时功能的实现(CountDownTimer)
- Android利用CountDownTimer类实现倒计时功能
- Android利用CountDownTimer类实现倒计时功能
- C/C++字符串和数字互换方案收集(转)
- 浅谈C#垃圾回收
- 关于全局数组的初始化
- linux中如何让命令的别名重启后还生效
- myeclipse10下启动web项目报空指针的错误解决办法
- 倒计时功能CountDownTimer PK Handler
- PHP 魔术函数、魔术常量
- oracle启动过程
- DAY6:leetcode #11 Container With Most Water
- Delphi 编写DLL动态链接库文件的知识和样例
- Eclipse一直building workspace问题解决
- 十一.Shell编程之运算符
- 信管 操作系统
- SQL---用一张表中的一列更新另一张表中的一列