Sobes.tech
Junior — Middle

Ako možno zorganizovať prenos dát z pozadia procesu do hlavného vlákna vykonávania?

sobes.tech AI

Odpoveď od AI

V Androide sa na prenos dát z pozadia do hlavného (UI) vlákna zvyčajne používame niekoľko prístupov:

  • Handler: vytvorí sa v hlavnom vlákne a prijíma správy alebo Runnable z pozadia.
  • runOnUiThread: metóda Activity, ktorá umožňuje vykonať kód v UI vlákne.
  • LiveData: pozorovateľná entita, ktorej aktualizácie sa automaticky doručujú do UI.
  • ViewModel + Coroutine s Dispatchers.Main: korutiny umožňujú prepínanie medzi vláknami.

Príklad s Handler:

Handler mainHandler = new Handler(Looper.getMainLooper());

new Thread(() -> {
    // Práca na pozadí
    String result = "Dáta z pozadia";

    mainHandler.post(() -> {
        // Aktualizácia UI
        textView.setText(result);
    });
}).start();