在纯 Kotlin 中 2 秒后执行代码
Execute code after 2 seconds in pure Kotlin
我需要在等待两秒后执行一些代码(不阻塞 UI 线程)。问题是这通常使用 Timer 或 Handler 来解决,但我的应用程序使用的是 Kotlin Multiplatform,所以我需要它只是纯 Kotlin,而不是任何 Java 库。
如果我愿意,我还需要能够取消计时器。
我看到 问的问题大致相同,但他们使用以下方法解决:
runBlocking {
println("Wait for 5sec")
delay(5000)
println("Done waiting for 5sec")
}
但我真的不知道如何取消它,也不知道这是否会阻止应用程序的其余部分。
您可以在启动协程时获得 Job
引用。你可以这样做:
val job = coroutineScope.launch {
delay(1000)
doYourStuff()
}
之后您可以使用 job.cancel()
,或者您需要的任何东西。此外,您可以像这样定义协程范围。
CoroutineScope(Dispatchers.Main)
或任何其他适合您需要的调度员。
祝你好运。
我需要在等待两秒后执行一些代码(不阻塞 UI 线程)。问题是这通常使用 Timer 或 Handler 来解决,但我的应用程序使用的是 Kotlin Multiplatform,所以我需要它只是纯 Kotlin,而不是任何 Java 库。
如果我愿意,我还需要能够取消计时器。
我看到
runBlocking {
println("Wait for 5sec")
delay(5000)
println("Done waiting for 5sec")
}
但我真的不知道如何取消它,也不知道这是否会阻止应用程序的其余部分。
您可以在启动协程时获得 Job
引用。你可以这样做:
val job = coroutineScope.launch {
delay(1000)
doYourStuff()
}
之后您可以使用 job.cancel()
,或者您需要的任何东西。此外,您可以像这样定义协程范围。
CoroutineScope(Dispatchers.Main)
或任何其他适合您需要的调度员。 祝你好运。