Junior — Middle
Come si può organizzare la trasmissione dei dati da un processo in background al thread principale di esecuzione?
sobes.tech AI
Risposta dell'AI
Su Android, per trasferire dati da un thread in background al thread principale (UI), si utilizzano generalmente diversi approcci:
- Handler: creato nel thread principale e riceve messaggi o Runnable dal thread in background.
- runOnUiThread: metodo dell'Activity che permette di eseguire codice nel thread UI.
- LiveData: entità osservabile, le cui aggiornamenti vengono consegnati automaticamente all'UI.
- ViewModel + Coroutine con Dispatchers.Main: le coroutine consentono di passare tra i thread.
Esempio con Handler:
Handler mainHandler = new Handler(Looper.getMainLooper());
new Thread(() -> {
// Lavoro in background
String result = "Dati dal thread in background";
mainHandler.post(() -> {
// Aggiornamento UI
textView.setText(result);
});
}).start();