I am using
class MyViewModelFactory(
private val app: Application,
private val someClass: SomeClass,
) : ViewModelProvider.Factory {
@Suppress("unchecked_cast")
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
if (modelClass.isAssignableFrom(MyViewModel::class.java)) {
return MyViewModel(application, someClass) as T
}
throw IllegalArgumentException("Unknown ViewModel class")
}
}
And
viewModel = ViewModelProvider(this, MyViewModelFactory(application, someClass)).get(
MyViewModel::class.java
)
But every time when the fragment instantiated, new viewmodel
is created, instead of to return existing viewmodel
.