Tôi rất bối rối vì api ViewModelProvider mới này (ViewModelProviders không được dùng nữa)
Cũng như những thay đổi mới, cũng có Trình xây dựng mới (Mã nguồn).
# 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;
}
Độ trễ cấp độ:
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0-rc02"
Vì vậy, những người xây dựng yêu cầu ViewModelStore
và viewModelStoreOwner
.
Bác sĩ:
@param store {@code ViewModelStore} nơi ViewModels sẽ được lưu trữ.
@param sở hữu {@code ViewModelStoreOwner} có {@link ViewModelStore} sẽ được sử dụng để giữ lại {@code ViewModels}
Bất cứ ai cũng có thể định nghĩa chúng và làm thế nào để sử dụng chúng và những gì chúng thực sự có ý nghĩa với nhà phát triển của chúng tôi?
là ViewModelStoreOwner == hoạt động / đoạn?