You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio(Kotlin)如何实现无延迟的无限间隔执行计时器

安卓Kotlin高频率稳定计时器实现说明

需求与原有实现问题

需在Android Studio中使用Kotlin开发,实现间隔约20毫秒执行一次操作、无限运行的计时器。

原有代码

object : CountDownTimer(10000,20){
   override fun onTick(millisUntilFinished: Long) {

   }
   override fun onFinish() {
      start()
   }
}.start()

存在问题

  • 运行一段时间后计时器会明显减速,原本1秒应走完的时长实际需要6秒
  • 即使将执行间隔调整为40毫秒及以上,也仅能暂时缓解问题,后续仍会出现减速
  • 参考无延迟的Java实现经Android Studio自动转换为Kotlin代码后,会导致应用启动崩溃

可行稳定实现方案

基于协程适配后的实现代码如下,可完全解决上述问题:

val timerName = lifecycleScope.launch(Dispatchers.IO) {
   while (isActive) {
      lifecycleScope.launch {
        doSomething()
      }
      delay(20L)
   }
}

方案特性

  • 依托Android官方协程框架,无累计延迟问题,计时精度稳定
  • 绑定lifecycleScope可自动跟随页面生命周期销毁,避免内存泄漏
  • 循环逻辑运行在IO线程,不会阻塞主线程UI渲染,操作执行和计时间隔互不影响
  • isActive状态判断自动识别协程存活状态,无需额外维护退出逻辑

内容的提问来源于stack exchange,提问作者Szomti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:27:03