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