Sobes.tech
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
}