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 са резултатом
}