Junior — Middle
Cosa succede se si esegue una richiesta di rete nel thread principale del programma?
sobes.tech AI
Risposta dell'AI
Se si effettua una richiesta di rete nel thread principale (UI) di un'app Android, ciò provocherà il blocco dell'interfaccia utente fino al completamento della richiesta. Di conseguenza, l'app smetterà di rispondere alle azioni dell'utente, il che può causare un ANR (Applicazione Non Risponde), un avviso di sistema sul blocco.
Pertanto, le operazioni di rete devono essere eseguite in un thread di background, ad esempio utilizzando AsyncTask, Thread, Coroutine o librerie come Retrofit con supporto asincrono.
Esempio con Kotlin Coroutine:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// richiesta di rete
}
// aggiornamento UI con il risultato
}