Avatar ·

Comment appeler une fonction avec un délai en Kotlin ? (Android)

Bonjour ! Je suis débutant en Kotlin et en développement Android. J'écris une application simple : un minuteur de compte à rebours. J'ai besoin qu'après avoir appuyé sur le bouton "Démarrer", une action soit exécutée après 5 secondes (par exemple, afficher un Toast avec le message "Temps écoulé !"). J'ai essayé d'utiliser `Thread.sleep(5000)` à l'intérieur d'une coroutine, mais l'application se fige pendant 5 secondes, et le Toast n'apparaît qu'après, sans mise à jour de l'interface. Voici mon code : ```kotlin fun startTimer() { GlobalScope.launch { Thread.sleep(5000) withContext(Dispatchers.Main) { Toast.makeText(this@MainActivity, "Temps écoulé !", Toast.LENGTH_SHORT).show() } } } ``` Le problème est que `Thread.sleep` bloque le thread, ce qui est incorrect. J'ai entendu parler de `Handler` et `Timer`, mais je ne comprends pas quelle méthode est considérée comme moderne et correcte en Kotlin pour un simple délai. Veuillez m'indiquer comment implémenter correctement un délai sans bloquer l'UI et avec un code lisible. Merci d'avance.