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

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.xdnf.cn/news/15885.html

相关文章:

  • 深入理解Linux文件I/O:系统调用与标志位应用
  • 机器学习17-Mamba
  • c++继承详解
  • 【Leecode 随笔】
  • 使用python的读取xml文件,简单的处理成元组数组
  • 【时时三省】(C语言基础)通过指针引用字符串
  • PyCharm 高效入门指南(核心模块详解二)
  • stm32f4 dma的一些问题
  • API和SDK有何区别??
  • 跨平台猫咪键盘桌宠BongoCat v0.6.2 绿色版(附带多款皮肤包)
  • SDIO协商,枚举,CMD等概念
  • [特殊字符] Spring Boot 常用注解全解析:20 个高频注解 + 使用场景实例
  • 前端篇——番外篇 Bootstrap框架
  • (笔记+作业)第五期书生大模型实战营---L2G2000 GraphGen:训练数据合成实践
  • 前端之CSS
  • LP-MSPM0G3507学习--04GPIO控制
  • 磁悬浮转子不平衡质量的高精度控制:从原理到实战
  • 一文讲清楚React的render优化,包括shouldComponentUpdate、PureComponent和memo
  • Android音视频探索之旅 | Webrtc 1对1音视频通话核心流程分析
  • 借助AI学习开源代码git0.7之三git-init-db
  • YOLO演变史(一)
  • CSS样式中的布局、字体、响应式布局
  • CMakeLists.txt 配置文件
  • 非线性优化相关库笔记
  • 【面试题】大厂高压面经实录丨第二期
  • @Qualifier(“beanName“) 详解
  • 一个逻辑问题
  • 《设计模式之禅》笔记摘录 - 8.命令模式
  • Day06_C语言网络编程20250718mobus重点
  • gin数据解析和绑定