ViewModel factory returns new instances instead of existing one

401 Views Asked by At

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.

0

There are 0 best solutions below