Junior — Middle
Wie kann man sicherstellen, dass Operationen so ausgeführt werden, dass sie die Benutzeroberfläche nicht blockieren?
sobes.tech KI
Antwort von AI
Damit Operationen die Benutzeroberfläche auf Android nicht blockieren, müssen sie in einem Hintergrund-Thread ausgeführt werden, nicht im Haupt- (UI-)Thread. Dafür kann man verwenden:
- AsyncTask (veraltet, aber noch in älterem Code vorhanden)
- HandlerThread oder Handler
- ExecutorService
- Kotlin Coroutines (moderne und empfohlene Methode)
- RxJava
Zum Beispiel kann man mit Coroutines folgendes machen:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Lange Operation, z.B. Netzwerkanfrage
fetchData()
}
// UI-Aktualisierung mit dem Ergebnis
textView.text = result
}
Auf diese Weise wird die schwere Arbeit im Hintergrund-Thread (IO) ausgeführt, und die UI-Aktualisierung erfolgt im Haupt-Thread.