Sobes.tech
Junior — Middle

ViewModel-in qurucusunu birbaşa çağırmaqla onun nümunəsini yaratmaqda hansı nəticələr ola bilər?

sobes.tech Süni İntellekt

AI-dan cavab

Android-də ViewModel-in birbaşa konstruktorunu çağırmaq (məsələn, new ViewModel() vasitəsilə) sistem tərəfindən ViewModel-in həyat dövrünün idarə olunmamasına səbəb olur. Nəticədə:

  • ViewModel ekranın döndürülməsi və ya Activity/Fragment-in yenidən yaradılması zamanı saxlanılmayacaq.
  • ViewModel-in əsas üstünlüyü — vəziyyətin saxlanması — itir.
  • Əgər ViewModel UI-ya istinadlar ehtiva edirsə, yaddaş sızması baş verə bilər.

Düzgün üsul ViewModelProvider istifadə etməkdir, bu isə həyat dövrünün düzgün idarə olunmasını təmin edir:

val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)

Bu, komponentin həyat dövrü çərçivəsində tək bir ViewModel nümunəsinin təkrar istifadəsini təmin edir.