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

发布时间 - 2026-01-11 02:08:11    点击率:

背景:

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

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


# Handler实现倒计时  # Android  # Handler  # 倒计时  # Android实现倒计时  # android自定义倒计时控件示例  # android实现倒计时功能代码  # Android实现计时与倒计时的常用方法小结  # Android 实现闪屏页和右上角的倒计时跳转实例代码  # Android自定义圆形倒计时进度条  # Android实现时间倒计时功能  # Android 实现广告欢迎界面(倒计时)  # Android定时器和倒计时实现淘宝秒杀功能  # Android实现倒计时方法汇总  # Android实现一个完美的倒计时功能  # 验证码  # 回调  # 服务端  # 发消息  # 是一个  # 也有  # 一遍  # 时间内  # 可以看出  # 来做  # 来完成  # 大家多多  # 太复杂  # MSG_CODE  # sendEmptyMessage  # int  # static  # final  # limitTime 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧  如何撰写建站申请书?关键要点有哪些?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  深圳网站制作平台,深圳市做网站好的公司有哪些?  移动端脚本框架Hammer.js  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  Linux网络带宽限制_tc配置实践解析【教程】  Android滚轮选择时间控件使用详解  制作公司内部网站有哪些,内网如何建网站?  Laravel如何为API生成Swagger或OpenAPI文档  网站制作价目表怎么做,珍爱网婚介费用多少?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何快速搭建高效简练网站?  深圳网站制作培训,深圳哪些招聘网站比较好?  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  深圳网站制作的公司有哪些,dido官方网站?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  活动邀请函制作网站有哪些,活动邀请函文案?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  JS去除重复并统计数量的实现方法  Internet Explorer官网直接进入 IE浏览器在线体验版网址  如何在腾讯云服务器上快速搭建个人网站?  百度浏览器如何管理插件 百度浏览器插件管理方法  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  Python制作简易注册登录系统  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何用腾讯建站主机快速创建免费网站?  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  大同网页,大同瑞慈医院官网?  如何在香港免费服务器上快速搭建网站?  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Python文件流缓冲机制_IO性能解析【教程】  实例解析angularjs的filter过滤器  智能起名网站制作软件有哪些,制作logo的软件?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  JS经典正则表达式笔试题汇总