Sobes.tech
Junior — Middle

რატომ არის აუცილებელი ნახვის განახლება მხოლოდ მომხმარებლის ინტერფეისის ძირითად ნაკადში?

sobes.tech AI

პასუხი AI-სგან

Android-ში, მომხმარებლის ინტერფეისის (view) განახლება უნდა განხორციელდეს მხოლოდ ძირითად (UI) ნაკადში, რადგან UI-ფრემვორკი თავად არ არის ნაკადების უსაფრთხო. თუ სცადებთ ინტერფეისის ელემენტების შეცვლას ფონურ ნაკადიდან, ეს შეიძლება გამოიწვიოს გაუთვალისწინებელი ქცევა, გატყდომა ან გამონაკლისები.

ძირითადი ნაკადი პასუხისმგებელია მოვლენის დამუშავებაზე და ინტერფეისის გამოსახულებაზე, ამიტომ ყველა UI ცვლილება უნდა გავიდეს მის მეშვეობით. სხვა ნაკადებიდან UI-ის განახლებისთვის გამოიყენება მეთოდები, რომლებიც გადართავენ შესრულებას ძირითად ნაკადზე, მაგალითად, runOnUiThread(), Handler, LiveData ან View.post().

მაგალითი:

runOnUiThread(() -> {
    textView.setText("ფონურ ნაკადიდან განახლდა");
});