Sobes.tech
Junior — Middle

Kas notiks, ja veiksiet tīkla pieprasījumu galvenajā programmā?

sobes.tech AI

Atbilde no AI

Ja veicat tīkla pieprasījumu galvenajā (UI) pavedienā Android lietotnē, tas novedīs pie lietotāja saskarnes bloķēšanas līdz pieprasījuma pabeigšanai. Rezultātā lietotne pārtrauks reaģēt uz lietotāja darbībām, kas var izraisīt ANR (Application Not Responding) – sistēmas brīdinājumu par aizkavi.

Tādēļ tīkla operācijas jāveic fonā, piemēram, izmantojot AsyncTask, Thread, Coroutine vai Retrofit līdzīgas bibliotēkas ar asinhronās darbības atbalstu.

Piemērs ar Kotlin Coroutine:

GlobalScope.launch(Dispatchers.Main) {
    val result = withContext(Dispatchers.IO) {
        // tīkla pieprasījums
    }
    // UI atjaunināšana ar rezultātu
}