在纯 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)

或任何其他适合您需要的调度员。 祝你好运。