Sobes.tech
Junior — Middle

Šta će se desiti ako izvršite mrežni zahtev u glavnoj niti programa?

sobes.tech АИ

Одговор од АИ

Ако извршите мрежески захтев у главном (UI) току Android апликације, то ће довести до блокирања корисничког интерфејса до завршетка захтева. Као резултат, апликација ће престати да реагује на акције корисника, што може изазвати ANR (Application Not Responding) – системско упозорење о застоју.

Због тога, мрежне операције треба изводити у позадинском току, на пример, коришћењем AsyncTask, Thread, Coroutine или библиотека као што је Retrofit са подршком за асинхроност.

Пример са Kotlin Coroutine:

GlobalScope.launch(Dispatchers.Main) {
    val result = withContext(Dispatchers.IO) {
        // мрежни захтев
    }
    // ажурирање UI са резултатом
}