この新しいViewModelProvider api(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"
したがって、これらのコンストラクタはrequire ViewModelStore
およびviewModelStoreOwner
です。
文書:
@param store {@code ViewModelStore} ViewModelが格納されます。
@param owner {@code ViewModelStore}が{@code ViewModels}を保持するために使用される{@code ViewModelStoreOwner}
誰かがそれらを定義し、それらをどのように使用するのか、そしてそれらが私たちの開発者にとって本当に何を意味するのか
ViewModelStoreOwner == activity / fragmentは何ですか?