Bu yeni ViewModelProvider api nedeniyle çok kafam karıştı (ViewModelProviders kullanımdan kaldırıldı)
Yeni değişikliklerde olduğu gibi yeni Oluşturucular da var (Kaynak kodu).
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 Bağımlılığı:
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0-rc02"
Yani bu yapıcı gerektirir ViewModelStore
ve viewModelStoreOwner
.
Doktor:
@param store {@code ViewModelStore} 'da ViewModels depolanacak.
@param sahibi {@code ViewModelStore} alıkoymak için kullanılacak {@code ViewModelStoreOwner} sahibi {@code ViewModels}
Herkes bunları ve nasıl kullanılacağını ve geliştiricinin gerçekten ne anlama geldiğini tanımlayabilir mi?
== etkinlik / fragman nedir?