Saya sangat bingung karena api ViewModelProvider baru ini (ViewModelProviders sudah usang)
Seperti halnya perubahan baru, ada juga Konstruktor baru (Kode sumber).
# 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;
}
Ketergantungan Gradle:
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0-rc02"
Jadi Konstruktor ini membutuhkan ViewModelStore
dan viewModelStoreOwner
.
Dokter:
@param store {@code ViewModelStore} tempat ViewModels akan disimpan.
@param pemilik {@code ViewModelStoreOwner} yang {@link ViewModelStore} akan digunakan untuk mempertahankan {@code ViewModels}
Adakah yang bisa mendefinisikannya dan bagaimana menggunakannya dan apa artinya bagi kami pengembang?
itu ViewModelStoreOwner == aktivitas / fragmen?