example - livedata android
AndroidViewModel vs ViewModel (1)
Si necesita usar el contexto dentro de su modelo de vista, debe usar AndroidViewModel, ya que contiene el contexto de la aplicación (para recuperar la llamada de contexto getApplication ()), de lo contrario use ViewModel normal.
EDITAR
AndroidViewModel tiene contexto de aplicación . ¡Todos sabemos que tener una instancia de contexto estático es malo! (¡Puede causar fuga de memoria!)
Pero, tener una instancia de aplicación estática no es malo de lo que piensas
Porque solo hay una instancia de aplicación en nuestra 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 la instancia de la aplicación hace referencia a ellos, es un problema debido al problema del ciclo de referencia.
Con la introducción de la biblioteca de componentes de arquitectura de Android, se introdujeron varias clases nuevas, incluidas
AndroidViewModel
y
ViewModel
.
Sin embargo, tengo problemas para descubrir la diferencia entre estas dos clases.
La
documentation
describe sucintamente
AndroidViewModel
siguiente manera:
Contexto de la aplicación
ViewModel
Aprecio la brevedad, pero ¿qué implica esto exactamente?
¿Cuándo deberíamos elegir usar
AndroidViewModel
sobre
ViewModel
y viceversa?