星空网 > 软件开发 > 操作系统

安卓验证码倒计时实现

安卓为验证码倒计时提供了一个很方便的类android.os.CountDownTimer

其使用方法:


new CountDownTimer(30000, 1000) {   public void onTick(long millisUntilFinished) {     mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);   }   public void onFinish() {     mTextField.setText("done!");   } }.start();

onTick 间隔时间回调 onfinish 倒计时完回调

从源码可以看到其实现主要是通过sendMessageDelayed实现的,其主要的逻辑如下:

private Handler mHandler = new Handler() {    @Override    public void handleMessage(Message msg) {      synchronized (CountDownTimer.this) {        if (mCancelled) {          return;        }        final long millisLeft = mStopTimeInFuture - SystemClock.elapsedRealtime();        if (millisLeft <= 0) {          onFinish();        } else if (millisLeft < mCountdownInterval) {          // no tick, just delay until done          sendMessageDelayed(obtainMessage(MSG), millisLeft);        } else {          long lastTickStart = SystemClock.elapsedRealtime();          onTick(millisLeft);          // take into account user's onTick taking time to execute          long delay = lastTickStart + mCountdownInterval - SystemClock.elapsedRealtime();          // special case: user's onTick took more than interval to          // complete, skip to next interval          while (delay < 0) delay += mCountdownInterval;          sendMessageDelayed(obtainMessage(MSG), delay);        }      }    }  };

可以在以后做一些定时操作的时候,做相关的逻辑。




原标题:安卓验证码倒计时实现

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

FBA损坏赔付:https://www.goluckyvip.com/tag/6807.html
Beru:https://www.goluckyvip.com/tag/6809.html
鲜果价格暴涨:https://www.goluckyvip.com/tag/681.html
阿里云服务:https://www.goluckyvip.com/tag/6810.html
配送中心火灾:https://www.goluckyvip.com/tag/6811.html
客户服务中心:https://www.goluckyvip.com/tag/6814.html
深圳大梅沙一日游攻略(玩转大梅沙,畅享海滨风光):https://www.vstour.cn/a/403228.html
成都店攻略(成都好玩的):https://www.vstour.cn/a/403229.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流