AndroidViewModel fornece contexto de aplicativo
Se você precisar usar o contexto no seu Viewmodel, use o AndroidViewModel (AVM), pois ele contém o contexto do aplicativo. Para recuperar a chamada de contexto getApplication()
, use o ViewModel (VM) comum.
AndroidViewModel tem contexto de aplicativo . Todos nós sabemos que ter uma instância de contexto estático é ruim, pois pode causar vazamentos de memória! No entanto, ter uma instância estática do aplicativo não é tão ruim quanto você imagina, porque há apenas uma instância do aplicativo no aplicativo em execução.
Portanto, usar e ter instância de Aplicativo em uma classe específica não é um problema em geral. Mas, se uma instância de Aplicativo os referenciar, será um problema devido ao problema do ciclo de referência.
Consulte também sobre a instância do aplicativo
AndroidViewModel Problematic para testes de unidade
O AVM fornece um contexto de aplicativo problemático para testes de unidade. Os testes de unidade não devem lidar com nenhum ciclo de vida do Android, como o contexto.