Sobes.tech
Junior — Middle

Как може да се организира прехвърлянето на данни от фонов процес към главния поток на изпълнение?

sobes.tech AI

Отговор от AI

В Android, за прехвърляне на данни от фонов поток към главния (UI) поток обикновено се използват няколко подхода:

  • Handler: създава се в главния поток и получава съобщения или Runnable от фоновия поток.
  • runOnUiThread: метод на Activity, който позволява изпълнение на код в UI потока.
  • LiveData: наблюдаема същност, чиито актуализации автоматично се доставят до UI.
  • ViewModel + Coroutine с Dispatchers.Main: корутините позволяват превключване между потокове.

Пример с Handler:

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

new Thread(() -> {
    // Фонова работа
    String result = "Данни от фоновия поток";

    mainHandler.post(() -> {
        // Обновяване на UI
        textView.setText(result);
    });
}).start();