Junior — Middle
Ce se întâmplă dacă faci o solicitare de rețea în thread-ul principal al programului?
sobes.tech AI
Răspuns de la AI
Dacă efectuați o solicitare de rețea în firul principal (UI) al unei aplicații Android, acest lucru va duce la blocarea interfeței utilizatorului până la finalizarea solicitării. Ca rezultat, aplicația nu va răspunde la acțiunile utilizatorului, ceea ce poate provoca un ANR (Application Not Responding) – o avertizare sistem despre blocare.
Prin urmare, operațiunile de rețea trebuie efectuate într-un fir de fundal, de exemplu, folosind AsyncTask, Thread, Coroutine sau biblioteci precum Retrofit cu suport pentru asincronie.
Exemplu cu Kotlin Coroutine:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// solicitare de rețea
}
// actualizare UI cu rezultatul
}