Junior — Middle
Co się stanie, jeśli wykonasz żądanie sieciowe w głównym wątku programu?
sobes.tech AI
Odpowiedź od AI
Jeśli wykonasz żądanie sieciowe w głównym (UI) wątku aplikacji Android, spowoduje to zablokowanie interfejsu użytkownika do czasu zakończenia żądania. W rezultacie aplikacja przestanie reagować na działania użytkownika, co może wywołać ANR (Application Not Responding) – systemowe ostrzeżenie o zawieszeniu.
Dlatego operacje sieciowe należy wykonywać w wątku tła, na przykład używając AsyncTask, Thread, Coroutine lub bibliotek takich jak Retrofit z obsługą asynchroniczności.
Przykład z Kotlin Coroutine:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// żądanie sieciowe
}
// aktualizacja UI z wynikiem
}