Junior — Middle
Mi történik, ha hálózati kérést hajt végre a program fő szálán?
sobes.tech MI
Válasz az MI-től
Ha egy hálózati kérést hajt végre egy Android alkalmazás fő (UI) szálán, az a felhasználói felület blokkolásához vezet a kérés befejezéséig. Ennek eredményeként az alkalmazás nem reagál a felhasználói műveletekre, ami ANR-t (Application Not Responding) – a rendszer által észlelt lefagyást – okozhat.
Ezért a hálózati műveleteket háttérszálon kell végrehajtani, például AsyncTask, Thread, Coroutine vagy Retrofithez hasonló, aszinkron támogatást nyújtó könyvtárak segítségével.
Kotlin Coroutine példával:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// hálózati kérés
}
// UI frissítése az eredménnyel
}