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
}