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();