如何在 Kotlin 中实现带延迟的函数调用?(Android)
你好!我是 Kotlin 和 Android 开发的新手。正在写一个简单的应用:倒计时器。我需要点击“开始”按钮后,5 秒后执行某个操作(例如,显示一个 Toast 消息“时间到了!”)。
我尝试在协程中使用 `Thread.sleep(5000)`,但应用会卡住 5 秒,Toast 只在之后出现,而且界面不更新。这是我的代码:
```kotlin
fun startTimer() {
GlobalScope.launch {
Thread.sleep(5000)
withContext(Dispatchers.Main) {
Toast.makeText(this@MainActivity, "时间到了!", Toast.LENGTH_SHORT).show()
}
}
}
```
问题在于 `Thread.sleep` 会阻塞线程,这是不正确的。我听说过 `Handler` 和 `Timer`,但不知道在 Kotlin 中哪种方式被认为是现代且正确的简单延迟方法。请告诉我如何正确实现延迟,以便不阻塞 UI 且代码可读。