¿Cómo llamar a una función con retraso en Kotlin? (Android)
¡Hola! Soy nuevo en Kotlin y desarrollo Android. Estoy escribiendo una aplicación simple: un temporizador de cuenta regresiva. Necesito que después de presionar el botón "Inicio", después de 5 segundos se ejecute alguna acción (por ejemplo, mostrar un Toast con el mensaje "¡Se acabó el tiempo!").
Intenté usar `Thread.sleep(5000)` dentro de una coroutine, pero la aplicación simplemente se congela durante 5 segundos, y el Toast aparece solo después de eso, y la interfaz no se actualiza. Aquí está mi código:
```kotlin
fun startTimer() {
GlobalScope.launch {
Thread.sleep(5000)
withContext(Dispatchers.Main) {
Toast.makeText(this@MainActivity, "¡Se acabó el tiempo!", Toast.LENGTH_SHORT).show()
}
}
}
```
El problema es que `Thread.sleep` bloquea el hilo, y eso está mal. He oído hablar de `Handler` y `Timer`, pero no entiendo qué método se considera moderno y correcto en Kotlin para un simple retraso. Por favor, indíqueme cómo implementar correctamente el retraso sin bloquear la UI y que el código sea legible. Gracias de antemano.