AndroidViewModel proporciona contexto de aplicación
Si necesita usar el contexto dentro de su Viewmodel, debe usar AndroidViewModel (AVM), porque contiene el contexto de la aplicación. Para recuperar la llamada de contexto getApplication()
, use el ViewModel (VM) normal.
AndroidViewModel tiene contexto de aplicación . ¡Todos sabemos que tener una instancia de contexto estático es malo, ya que puede causar pérdidas de memoria! Sin embargo, tener una instancia de aplicación estática no es tan malo como podría pensar porque solo hay una instancia de aplicación en la aplicación en ejecución.
Por lo tanto, usar y tener una instancia de Aplicación en una clase específica no es un problema en general. Pero, si una instancia de la Aplicación hace referencia a ellos, es un problema debido al problema del ciclo de referencia.
Consulte también sobre Instancia de aplicación
AndroidViewModel Problemática para pruebas unitarias
AVM proporciona un contexto de aplicación que es problemático para las pruebas unitarias. Las pruebas unitarias no deben abordar ninguno de los ciclos de vida de Android, como el contexto.