Junior — Middle
Quelles conséquences peuvent survenir lors de l'appel direct du constructeur de ViewModel pour créer son instance?
sobes.tech IA
Réponse de l'IA
L'appel direct au constructeur ViewModel (par exemple, via new ViewModel()) dans Android entraîne une gestion incorrecte du cycle de vie de ViewModel par le système. En conséquence :
- ViewModel ne sera pas conservé lors des rotations d'écran ou de la recréation d'Activity/Fragment.
- L'avantage principal de ViewModel — la conservation de l'état — est perdu.
- Des fuites de mémoire peuvent survenir si ViewModel contient des références à l'UI.
La bonne façon de créer un ViewModel est d'utiliser ViewModelProvider, qui garantit une gestion correcte du cycle de vie :
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
Cela assure la réutilisation d'une seule instance de ViewModel dans le cadre du cycle de vie du composant.