Sobes.tech
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();