Sobes.tech
Junior — Middle

Cum se poate organiza transmiterea datelor dintr-un proces de fundal în firul principal de execuție?

sobes.tech AI

Răspuns de la AI

În Android, pentru a transfera date dintr-un fir de execuție în fundal către firul principal (UI), se folosesc de obicei mai multe abordări:

  • Handler: creat în firul principal și primește mesaje sau Runnable din firul de fundal.
  • runOnUiThread: metodă a Activity care permite executarea codului în firul UI.
  • LiveData: entitate observabilă, ale cărei actualizări sunt livrate automat în UI.
  • ViewModel + Coroutine cu Dispatchers.Main: corutinele permit comutarea între fire.

Exemplu cu Handler:

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

new Thread(() -> {
    // Lucru în fundal
    String result = "Date din firul de fundal";

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