当前位置: 首页 > news >正文

Android CountDownTimer

CountDownTimer 这个类用于倒计时。这样构造:
CountDownTimer countDownTimer = new CountDownTimer(10000, 1000) {@Overridepublic void onTick(long millisUntilFinished) {// TODO 每个周期执行一次。 millisUntilFinished为距离倒计时结束的剩余时长毫秒数}@Overridepublic void onFinish() {// TODO 倒计时结束}};countDownTimer.start(); // 开始倒计时

看下源码是怎么倒计时的:

倒计时启动时,发送一个消息。看下handler怎么处理消息的。handleMessage方法代码如下:

可见,倒计时启动的时候,就调用了一次onTick, 参数为倒计时剩余的时长毫秒数。后面每一个执行周期执行一次onTick方法,直到结束。 有个小细节,每次onTick方法调用后,都会计算下次onTick执行的时间,这里计算了onTick方法耗时,把这个耗时减去了,这样onTick的执行间隔就比较近似于设置的那个执行间隔了。 注意,handler延迟任务的延迟时间只是近似的时间,实际执行间隔会略大于设置 的时间。 不能拿这个间隔去计时。  另外,注意这个handler构造的时候没有显式传Looper对象,执行线程为实例化这个倒计时组件的线程。

http://www.dtcms.com/a/286607.html

相关文章:

  • 企业微信社群留存实践:从内容规划到标签体系的落地逻辑
  • C++ 程序设计考量表
  • sql注入以及Python二分查找
  • 模板初阶和C++内存管理
  • Linux网络:序列化与反序列化
  • web-storage-cache离线缓存技术的详细讲解与使用
  • 虚拟商品自动化实践:闲鱼订单防漏发与模板化管理的技术解析
  • 零售行业 AI 客户咨询对话系统实战指南
  • 深入理解Linux文件操作:stdin/stdout/stderr与C语言文件函数全解析
  • 【实战】一次出口连接数超限事故引发的架构反思:强制代理、NAT 网关与大厂最佳实践
  • 网络编程(modbus,3握4挥)
  • 【C#】引用(Reference)句柄(Handle)
  • 库的制作与原理
  • 退信、延迟、遇攻击?CACTER 邮件安全海外中继:让跨境通邮 “零障碍”
  • 【前后端】沙箱机制
  • gcc 源码分析:从IR-RTL 到汇编输出
  • C++ 程序 AddressSanitizer:DEADLYSIGNAL
  • 自动化面试题
  • spring-cloud微服务部署转单体部署-feign直连调用
  • 磁悬浮轴承系统中由不平衡力引发的恶性循环机制深度解析
  • 初探:C语言FILE结构之文件描述符与缓冲区的实现原理
  • 前端 SSE 实战应用:用最简单的方式实现实时推送
  • Python基础④-装饰器、迭代器及常用函数篇
  • 在断网情况下,网线直接连接 Windows 笔记本和 Ubuntu 服务器进行数据传输
  • 高性能数据库-Redis详解
  • verilog tb文件 美化terminal输出
  • Webpack 项目构建优化详解
  • 雪豹大模型驱动效率革命 华鼎冷链科技重构餐饮供应链神经网络
  • 进程 线程 并发 并行
  • 安达发|从救火到未雨绸缪:APS生产计划排产软件重塑制造业“危机免疫力“