Junior — Middle
Come garantire che le operazioni vengano eseguite in modo da non bloccare l'interfaccia utente?
sobes.tech AI
Risposta dell'AI
Per evitare che le operazioni blocchino l'interfaccia utente su Android, è necessario eseguirle in un thread di background, non nel thread principale (UI). Per farlo, si può usare:
- AsyncTask (deprecato, ma ancora presente nel codice vecchio)
- HandlerThread o Handler
- ExecutorService
- Coroutines di Kotlin (metodo moderno e raccomandato)
- RxJava
Ad esempio, con le coroutines si può fare così:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Operazione lunga, ad esempio richiesta di rete
fetchData()
}
// Aggiornamento dell'UI con il risultato
textView.text = result
}
In questo modo, il lavoro pesante viene eseguito in un thread di background (IO), e l'aggiornamento dell'interfaccia avviene nel thread principale.