首页 > 系统 > Android > 正文

Android中Handler实现倒计时的两种方式

2019-12-12 02:33:45
字体:
来源:转载
供稿:网友

背景:

最近项目中,正好做到登录/注册这个功能块。它需要通过发送验证码,在规定的时间内用验证码来完成登录/注册。之前的项目中也有这个功能,但是觉得太复杂了,只好自己重新实现一遍。用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的便利方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表