Java 使用SavedStateViewModelFactory的SavedStateViewModel

Java 使用SavedStateViewModelFactory的SavedStateViewModel,java,android,mvvm,viewmodel,Java,Android,Mvvm,Viewmodel,我正在关注谷歌的这个代码库,但它无法保存数据。这里是链接 活动类 公共类SavedStateActivity扩展了AppCompativity{ 私有SavedStateViewModel mSavedStateViewModel; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.saved_state_活动); //获取ViewMod

我正在关注谷歌的这个代码库,但它无法保存数据。这里是链接

活动类

公共类SavedStateActivity扩展了AppCompativity{
私有SavedStateViewModel mSavedStateViewModel;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.saved_state_活动);
//获取ViewModel
//mSavedStateViewModel=新的ViewModelProvider(this).get(SavedStateViewModel.class);
mSavedStateViewModel=newViewModelProvider(this,new SavedStateViewModelFactory(getApplication(),this)).get(SavedStateViewModel.class);
//在文本视图中显示ViewModel属性的值
mSavedStateViewModel.getName().observe(这是一个新的观察者(){
@凌驾
更改后的公共void(字符串savedString){
((文本视图)findViewById(R.id.saved\u vm\u tv))
.setText(getString(R.string.saved_in_vm,savedString));
}
});
//保存按钮
findViewById(R.id.save_bt).setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
字符串newName=((EditText)findViewById(R.id.name_et)).getText().toString();
mSavedStateViewModel.saveNewName(newName);
}
});
}
}
视图模型类

公共类SavedStateViewModel扩展了ViewModel{
私有静态最终字符串名称\u KEY=“NAME”;
私有savedstatehold mState;
公共SavedStateViewModel(SavedStateHandle SavedStateHandle){
mState=savedstatehold;
}
//公开不可变的LiveData
LiveData getName(){
//getLiveData获取与LiveData中包装的键关联的对象
//因此,可以观察其变化。
返回mState.getLiveData(NAME_键);
}
void saveNewName(字符串newName){
//为与键关联的对象设置新值。无需设置它
//作为一个LiveData。
mState.set(NAME\u KEY,newName);
}
}
如您所见,我已经在添加了
SavedStateViewModelFactory
msavestateviewmodel=newviewmodelprovider(this,newsavedstateviewmodelfactory(getApplication(),this)).get(SavedStateViewModel.class)


但是,当我销毁应用程序并打开它时,一切都不起作用。数据仍然无法保存。

谷歌表示,对于保存状态,解决方案仍处于测试阶段。目前,保存数据的唯一解决方案是使用Room。

谷歌表示,对于保存状态,该解决方案仍处于测试阶段。目前,保存数据的唯一解决方案是使用Room。

我目前正为类似的问题苦苦挣扎