Sobes.tech
Junior — Middle

Ինչպե՞ս կարելի է կազմակերպել տվյալների փոխանցումը ֆոնային պրոցեսից գլխավոր կատարման հոսք։

sobes.tech AI

Պատասխան AI-ից

Android-ում ֆոնային հոսքից հիմնական (UI) հոսք փոխանցելու համար սովորաբար օգտագործվում են մի քանի մոտեցումներ՝

  • Handler: ստեղծվում է հիմնական հոսքում և ստանում է հաղորդագրություններ կամ Runnable ֆոնային հոսքից:
  • runOnUiThread: Activity-ի մեթոդ, որը թույլ է տալիս կատարել կոդը UI հոսքում:
  • LiveData: դիտվող օբյեկտ, որի թարմացումները ավտոմատ կերպով փոխանցվում են UI-ին:
  • ViewModel + Coroutine with Dispatchers.Main: կորուտիները թույլ են տալիս փոխ switch անել հոսքերի միջև:

Օրինակ Handler-ով:

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

new Thread(() -> {
    // Ֆոնային աշխատանք
    String result = "Ֆոնային հոսքից տվյալներ";

    mainHandler.post(() -> {
        // UI թարմացում
        textView.setText(result);
    });
}).start();