Junior — Middle
Co se stane, když provedete síťový požadavek v hlavním vlákně programu?
sobes.tech AI
Odpověď od AI
Pokud provedete síťový požadavek v hlavním (UI) vlákně aplikace Android, povede to k zablokování uživatelského rozhraní až do dokončení požadavku. Výsledkem je, že aplikace přestane reagovat na akce uživatele, což může způsobit systémové upozornění ANR (Application Not Responding) – systémové upozornění o zamrznutí.
Proto je třeba síťové operace provádět ve vlákně na pozadí, například pomocí AsyncTask, Thread, Coroutine nebo knihoven jako Retrofit s podporou asynchronního zpracování.
Příklad s Kotlin Coroutine:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// síťový požadavek
}
// aktualizace UI s výsledkem
}