AndroidViewModel menyediakan konteks Aplikasi
Jika Anda perlu menggunakan konteks di dalam Viewmodel Anda, Anda harus menggunakan AndroidViewModel (AVM), karena mengandung konteks aplikasi. Untuk mengambil panggilan konteks getApplication()
, jika tidak gunakan ViewModel (VM) biasa.
AndroidViewModel memiliki konteks aplikasi . Kita semua tahu bahwa instance konteks statis adalah jahat karena dapat menyebabkan kebocoran memori !! Namun, memiliki instance Aplikasi statis tidak seburuk yang Anda bayangkan karena hanya ada satu instance Aplikasi dalam aplikasi yang sedang berjalan.
Oleh karena itu, menggunakan dan memiliki instance Aplikasi dalam kelas tertentu tidak menjadi masalah secara umum. Tetapi, jika sebuah instance Aplikasi referensi mereka, itu adalah masalah karena masalah siklus referensi.
Lihat Juga tentang Mesin Virtual Aplikasi
AndroidViewModel Bermasalah untuk pengujian unit
AVM menyediakan konteks aplikasi yang bermasalah untuk pengujian unit. Tes unit tidak boleh berurusan dengan siklus hidup Android mana pun, seperti konteks.