Junior — Middle
Como pode organizar-se a transmissão de dados de um processo em segundo plano para o thread principal de execução?
sobes.tech IA
Resposta da IA
No Android, para transferir dados de uma thread em segundo plano para a thread principal (UI), geralmente utilizam-se várias abordagens:
- Handler: criado na thread principal e recebe mensagens ou Runnable da thread em segundo plano.
- runOnUiThread: método da Activity que permite executar código na thread UI.
- LiveData: entidade observável, cujas atualizações são entregues automaticamente na UI.
- ViewModel + Coroutine com Dispatchers.Main: as coroutines permitem alternar entre threads.
Exemplo com Handler:
Handler mainHandler = new Handler(Looper.getMainLooper());
new Thread(() -> {
// Trabalho em segundo plano
String result = "Dados do thread em segundo plano";
mainHandler.post(() -> {
// Atualização da UI
textView.setText(result);
});
}).start();