Sobes.tech
Junior — Middle

Čo sa stane, ak vykonáte sieťovú požiadavku v hlavnom vlákne programu?

sobes.tech AI

Odpoveď od AI

Ak vykonáte sieťový dopyt v hlavnom (UI) vlákne Android aplikácie, povedie to k zablokovaniu používateľského rozhrania až do dokončenia dopytu. V dôsledku toho aplikácia prestane reagovať na akcie používateľa, čo môže spôsobiť systémové upozornenie ANR (Application Not Responding) – systémové upozornenie o zamrznutí.

Preto je potrebné sieťové operácie vykonávať vo vlákne na pozadí, napríklad pomocou AsyncTask, Thread, Coroutine alebo knižníc ako Retrofit s podporou asynchrónneho spracovania.

Príklad s Kotlin Coroutine:

GlobalScope.launch(Dispatchers.Main) {
    val result = withContext(Dispatchers.IO) {
        // sieťový dopyt
    }
    // aktualizácia UI s výsledkom
}