Junior — Middle
Ako zabezpečiť, aby operácie prebiehali tak, aby nezablokovali používateľské rozhranie?
sobes.tech AI
Odpoveď od AI
Aby operácie neblokovali používateľské rozhranie na Androide, je potrebné ich vykonávať v pozadí, nie v hlavnom (UI) vlákne. Na to môžete použiť:
- AsyncTask (zastaralé, ale stále sa vyskytuje v starom kóde)
- HandlerThread alebo Handler
- ExecutorService
- Kotlin Coroutines (moderný a odporúčaný spôsob)
- RxJava
Napríklad pomocou korutín môžete urobiť takto:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Dlhá operácia, napríklad sieťová požiadavka
fetchData()
}
// Aktualizácia UI s výsledkom
textView.text = result
}
Týmto spôsobom sa ťažká práca vykonáva v pozadí (IO), a aktualizácia rozhrania v hlavnom vlákne.