What is the difference between ViewModelProviders and ViewModelProvider class?
ViewModelProviders (belongs to Maven artifact android.arch.lifecycle:extensions) is a class from android.arch.lifecycle
package which contains utilities methods for ViewModelStore class & returns you object of ViewModelProvider
class when you use of()
method from it.
So, you can think of as wrapper around library class for ViewModelProvider
.
On the other hand, ViewModelProvider (belongs to Maven artifact android.arch.lifecycle:viewmodel) is class that provides ViewModels
for a scope. So it's default ViewModelProvider
for an Activity
or a Fragment
can be obtained from ViewModelProviders
class.
So, yes ! this is the main class that provides core logic for your ViewModel
, but you'll need to obtain it from ViewModelProviders
which returns you this class to obtain ViewModel
from.
Edit:
After ViewModel version 2.2.0:
Class ViewModelProviders
has been deprecated and we can now use ViewModelProvider
directly by creating it's new instance for getting ViewModel
.
Something like this: ViewModelProvider(this).get(SomeViewModel::class.java)