首页 > 解决方案 > Kotlin 在不同时间暂停计时器

问题描述

我试图在 kotlin 中开发一个带有计时器的应用程序,当 te chrono 达到某些条件时,我需要做几件事,但我做不到,我不知道为什么

这是我的应用程序的 setOnChronometerTickListener

chrono?.setOnChronometerTickListener {
        if (chrono?.base == 180000L && !inPriority) {
            startStopChrono()
            showWinner()
        } else if (chrono?.base? == 30000L && inPriority) {
            println("EEEEEEEEE")
            startStopChrono()
            showWinner()
        }
    }

问题是当计时在 30 秒内并且条件为真时,不要运行方法,并且还有 3 分钟条件

感谢大家

标签: androidkotlinchronometer

解决方案


我认为你不应该使用基地,这里是解决方案:

chrono?.setOnChronometerTickListener {
    val elapsed: Long = SystemClock.elapsedRealtime() - it.base
    if (elapsed >= 180000L) {
        println("Elapsed 3 minutes")
    } else if (elapsed >= 30000L) {
        println("Elapsed 30 seconds")
    }
}

根据文档 getBase()从setBase ()返回时间,如果未设置,它将返回SystemClock.elapsedRealtime作为时间基准。


推荐阅读