android - 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 分钟条件
感谢大家
解决方案
我认为你不应该使用基地,这里是解决方案:
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作为时间基准。
推荐阅读
- c - while 循环有终止符号仍然可以正常工作
- python - 如何获取日期输入值?
- google-sheets - 谷歌表格,总结一个公式?
- java - 在 libGDX 中移动玩家时,附加到玩家的 BroadSword 会向前跳 2 个像素
- python - 如何修复 ValueError:分类指标无法处理二进制和连续目标的混合以获得 F1_score
- android - 为什么我的寻呼机适配器不显示任何内容?
- locust - 蝗虫-如何传递不同的主机地址
- batch-file - 有没有办法从批处理文件中制作混淆的批处理文件?
- opengl - 顶点缓冲区绑定索引和统一缓冲区绑定点?
- python - 为什么我的程序会被评论干扰?