Wie ruft man eine Funktion mit Verzögerung in Kotlin auf? (Android)
Hallo! Ich bin neu in Kotlin und Android-Entwicklung. Ich schreibe eine einfache App: einen Countdown-Timer. Ich muss, dass nach dem Drücken der Schaltfläche "Start" nach 5 Sekunden eine Aktion ausgeführt wird (z.B. ein Toast mit der Nachricht "Zeit abgelaufen!").
Ich habe versucht, `Thread.sleep(5000)` innerhalb einer Coroutine zu verwenden, aber die App friert für 5 Sekunden ein, und der Toast erscheint erst danach, wobei die Benutzeroberfläche nicht aktualisiert wird. Hier ist mein Code:
```kotlin
fun startTimer() {
GlobalScope.launch {
Thread.sleep(5000)
withContext(Dispatchers.Main) {
Toast.makeText(this@MainActivity, "Zeit abgelaufen!", Toast.LENGTH_SHORT).show()
}
}
}
```
Das Problem ist, dass `Thread.sleep` den Thread blockiert, und das ist falsch. Ich habe von `Handler` und `Timer` gehört, verstehe aber nicht, welche Methode in Kotlin für eine einfache Verzögerung als modern und korrekt gilt. Bitte sagen Sie mir, wie ich die Verzögerung richtig implementiere, ohne die UI zu blockieren und damit der Code lesbar bleibt. Vielen Dank im Voraus.
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs