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

 更新时间:2017年07月01日 09:26:02   作者:huang_xiao_yu  
本篇文章主要介绍了Android中Handler实现倒计时的两种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

背景:

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

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

相关文章

  • Android 管理Activity中的fragments

    Android 管理Activity中的fragments

    为了管理Activity中的fragments,需要使用FragmentManager,为了得到它,需要调用Activity中的getFragmentManager()方法,接下来详细介绍,感兴趣的朋友可以了解下哦
    2013-01-01
  • Flutter中如何使用WillPopScope的示例代码

    Flutter中如何使用WillPopScope的示例代码

    这篇文章主要介绍了Flutter中如何使用WillPopScope,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Android发送短信功能代码

    Android发送短信功能代码

    这篇文章主要介绍了Android发送短信功能代码,并附有较为详尽的代码说明,有助于读者更好的理解代码功能,需要的朋友可以参考下
    2014-09-09
  • Angular5.0.0新特性

    Angular5.0.0新特性

    Angular5.0.0是一款非常优秀的前端JS框架,已经被用于google多款产品当中,这篇文章主要介绍了Angular5.0.0新特性,需要的朋友可以参考下
    2017-11-11
  • Android中自定义Window Title样式实例

    Android中自定义Window Title样式实例

    这篇文章主要介绍了Android中自定义Window Title样式实例,本文给出效果预览和实现方法,需要的朋友可以参考下
    2015-01-01
  • 适配Android 8.0版本更新安装与通知栏的一些坑

    适配Android 8.0版本更新安装与通知栏的一些坑

    这篇文章主要给大家介绍了关于Android适配8.0版本更新安装与通知栏的一些坑,文中通过示例代码将这些坑介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-05-05
  • 5种方法完美解决android软键盘挡住输入框方法详解

    5种方法完美解决android软键盘挡住输入框方法详解

    我们在开发android APP中经常会遇到键盘挡住输入框的情况,必须先把键盘收起,再去获取下面输入框焦点,这样用户体验也非常不好,今天就给大家介绍5种完美解决android键盘挡住输入框的方法
    2018-03-03
  • Android开发实现简单的观察者与被观察者示例

    Android开发实现简单的观察者与被观察者示例

    这篇文章主要介绍了Android开发实现简单的观察者与被观察者,简单描述了观察者模式的概念、原理并结合实例形式分析了Android实现观察者模式的简单操作技巧,需要的朋友可以参考下
    2017-11-11
  • Android笔记之:App应用之发布各广告平台版本的详解

    Android笔记之:App应用之发布各广告平台版本的详解

    Android的广告平台是很多的,各市场对各平台的接受程度是不一样的,Android的开发者如果想集成广告基本要考虑下面两个问题
    2013-04-04
  • Flutter中如何实现无Context跳转详解

    Flutter中如何实现无Context跳转详解

    这篇文章主要给大家介绍了关于Flutter中如何实现无Context跳转的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Flutter具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09

最新评论