Sobes.tech
Junior — Middle

Kodėl vaizdo atnaujinimą reikia atlikti tik pagrindiniame naudotojo sąsajos sraute?

sobes.tech AI

Atsakymas iš AI

Android'e, naudotojo sąsajos (view) atnaujinimas turi būti atliekamas tik pagrindiniame (UI) sraute, nes UI karkasas pats nėra srautinai saugus. Jei bandysite keisti sąsajos elementus iš foninio srauto, tai gali sukelti nenuspėjamą elgesį, gedimus ar išimtis.

Pagrindinis srautas atsakingas už įvykių apdorojimą ir sąsajos atvaizdavimą, todėl visi UI pakeitimai turi būti atliekami per jį. Norint atnaujinti UI iš kitų srautų, naudojami metodai, kurie perjungia vykdymą į pagrindinį srautą, pvz., runOnUiThread(), Handler, LiveData ar View.post().

Pavyzdys:

runOnUiThread(() -> {
    textView.setText("Atnaujinta iš foninio srauto");
});