我想在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时(我从来没有使用过Java),它最终没有工作(启动后,应用程序每次都崩溃)。有没有人知道,除了我上面展示的CountDownTimer之外,如何创建或使用不同的定时器?
我忘记添加对我有用的代码了。这基本上是我接受的答案,但我不得不做一些修改以使其工作,所以它在这里。
val timerName = lifecycleScope.launch(Dispatchers.IO) {
while (isActive) {
lifecycleScope.launch {
doSomething()
delay(20L)