Avatar ·

¿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.