Sobes.tech
Junior — Middle

¿Qué consecuencias pueden surgir al llamar directamente al constructor de ViewModel para crear su instancia?

sobes.tech AI

Respuesta de la IA

Llamar directamente al constructor de ViewModel (por ejemplo, mediante new ViewModel()) en Android hace que el ciclo de vida de ViewModel no sea gestionado por el sistema. Como resultado:

  • ViewModel no se conservará durante rotaciones de pantalla o recreaciones de Activity/Fragment.
  • Se pierde la principal ventaja de ViewModel — la conservación del estado.
  • Podrían ocurrir fugas de memoria si ViewModel contiene referencias a la interfaz de usuario.

La forma correcta de crear un ViewModel es usar ViewModelProvider, que garantiza una gestión adecuada del ciclo de vida:

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

Esto asegura la reutilización de una sola instancia de ViewModel dentro del ciclo de vida del componente.