Sobes.tech
Junior — Middle

Miért kell csak a fő felhasználói felület szálán végrehajtani a nézet frissítését?

sobes.tech MI

Válasz az MI-től

Androidon a felhasználói felület (nézet) frissítését csak a fő (UI) szálon szabad végrehajtani, mert a UI-keretrendszer maga nem szálbiztos. Ha megpróbálja módosítani a felület elemeit háttérszálból, az kiszámíthatatlan viselkedést, összeomlásokat vagy kivételeket okozhat.

A fő szál felelős az események feldolgozásáért és a felület rendereléséért, ezért minden UI-változtatásnak ezen keresztül kell történnie. Más szálakról a UI frissítéséhez olyan módszereket használnak, amelyek átkapcsolják a végrehajtást a fő szálra, például a runOnUiThread(), Handler, LiveData vagy View.post().

Példa:

runOnUiThread(() -> {
    textView.setText("Háttérszálról frissítve");
});