Junior — Middle
Hoe zorg je ervoor dat operaties worden uitgevoerd zonder de gebruikersinterface te blokkeren?
sobes.tech AI
Antwoord van AI
Om te voorkomen dat operaties de gebruikersinterface op Android blokkeren, moeten ze in een achtergrondthread worden uitgevoerd, niet in de hoofd- (UI-) thread. Hiervoor kan men gebruiken:
- AsyncTask (verouderd, maar nog steeds aanwezig in oude code)
- HandlerThread of Handler
- ExecutorService
- Kotlin Coroutines (moderne en aanbevolen methode)
- RxJava
Bijvoorbeeld, met coroutines kun je het zo doen:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Lange operatie, bijvoorbeeld netwerkverzoek
fetchData()
}
// UI bijwerken met het resultaat
textView.text = result
}
Op deze manier wordt het zware werk in een achtergrondthread (IO) uitgevoerd, en wordt de interface bijgewerkt in de hoofdthread.