Я дуже розгублений через цю нову версію програми ViewModelProvider (ViewModelProviders застарілий)
Як і з новими змінами, є і нові Конструктори (вихідний код).
№1
public ViewModelProvider(@NonNull ViewModelStoreOwner owner) {
this(owner.getViewModelStore(), owner instanceof HasDefaultViewModelProviderFactory
? ((HasDefaultViewModelProviderFactory) owner).getDefaultViewModelProviderFactory()
: NewInstanceFactory.getInstance());
}
№2
public ViewModelProvider(@NonNull ViewModelStoreOwner owner, @NonNull Factory factory) {
this(owner.getViewModelStore(), factory);
}
№3
public ViewModelProvider(@NonNull ViewModelStore store, @NonNull Factory factory) {
mFactory = factory;
mViewModelStore = store;
}
Залежність від Gradle:
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0-rc02"
Тож ці Конструктор вимагають ViewModelStore
і viewModelStoreOwner
.
Документ:
@param магазин {@code ViewModelStore}, де зберігатимуться ViewModels.
Власник @param {@code ViewModelStoreOwner}, {@link ViewModelStore} буде використовуватися для збереження {@code ViewModels}
Хтось може їх визначити і як їх використовувати, і що вони насправді означають для нас, розробників?
ViewModelStoreOwner == активність / фрагмент?