Junior — Middle
Koje posledice mogu nastati prilikom direktnog pozivanja konstruktora ViewModel za kreiranje njenog primera?
sobes.tech АИ
Одговор од АИ
Direktno pozivanje konstruktora ViewModel (na primer, putem new ViewModel()) u Androidu dovodi do toga da sistem neće upravljati životnim ciklusom ViewModel-a. Kao rezultat:
- ViewModel neće biti sačuvan tokom rotacija ekrana ili ponovnog kreiranja Activity/Fragment.
- Gubi se glavna prednost ViewModel-a — očuvanje stanja.
- Moguće su curenja memorije ako ViewModel sadrži reference na UI.
Pravi način za kreiranje ViewModel-a je korišćenje ViewModelProvider, koji garantuje pravilno upravljanje životnim ciklusom:
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
Ovo obezbeđuje ponovno korišćenje jednog primera ViewModel-a u okviru životnog ciklusa komponente.