SavedStateRegistryOwner

SavedStateRegistryOwner

我的viewmodel-savestate版本是implementation 'androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha03'
在1.0.0-alpha01版本中,我可以使用

 MyViewModel myVM = new ViewModelProvider(this, new SavedStateVMFactory(this)).get(MyVM.class);


用savestate创建viewmodel,
但在1.0.0-alpha03版本中,
SavedStateVMFactory

无法工作,我需要使用new SavedStateViewModelFactory,但我不知道第二个参数是什么意思,
代码如下所示:
        myVM = new ViewModelProvider(this, new SavedStateViewModelFactory(getApplication(),xxxxxxx)).get(MyVM.class);


我在android开发者网站上找不到与此有关的任何文档

最佳答案

按照 SavedStateRegistryOwner documentationFragmentAppCompatActivity都实现SavedStateRegistryOwner,因此您只需传递this即可:

 myVM = new ViewModelProvider(this,
     new SavedStateViewModelFactory(getApplication(), this))
     .get(MyVM.class);

只要确保您使用的是AppCompat 1.1.0,即AppCompatActivity(及其基类FragmentActivityComponentActivity)开始实现SavedStateRegistryOwner时。

关于android - Android Jetpack的SavedStateViewModelFactory如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57838759/

10-11 02:40