Junior — Middle
Jak zajistit, aby operace probíhaly tak, aby nezablokovaly uživatelské rozhraní?
sobes.tech AI
Odpověď od AI
Aby operace ne blokovaly uživatelské rozhraní na Androidu, je třeba je provádět v pozadí, nikoli v hlavním (UI) vlákně. K tomu lze použít:
- AsyncTask (zastaralé, ale stále se vyskytuje ve starém kódu)
- HandlerThread nebo Handler
- ExecutorService
- Kotlin Coroutines (moderní a doporučený způsob)
- RxJava
Například pomocí korutin lze postupovat takto:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Dlouhá operace, například síťový požadavek
fetchData()
}
// Aktualizace UI s výsledkem
textView.text = result
}
Tímto způsobem se těžká práce provádí v pozadí (IO), a aktualizace rozhraní v hlavním vlákně.