日志文章

2020-1-6 aflfte2011

使用viewmodelsavedstate保存数据

首先在build.gradle(Module:app)的depedencies中加入引用代码:
implementation 'androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01'
然后在自己的ViewModel类中加入变量声明和构造器
 private SavedStateHandle handle;//声明变量handle
private final static String KEY;//声明KEY常量
    //生成构造器
    public MyViewModel(SavedStateHandle handle){
        this.handle=handle;
    }
创建get方法获取数据 
 public MutableLiveData<Integer> getNumber(){
        if(!handle.contains(KEY)){
            handle.set(KEY,0);

        }
        return handle.getLiveData(KEY);
    }
使用和修改数据直接调用这个方法操作就可以
getNumber.getValue();//获取数据
getNumber.setValue();//设置数据

最后还在在MainActivity.java中初始化ViewModel时加入new SavedStateVMFactory(this)参数
myViewModel=ViewModelProviders.of(this,new SavedStateVMFactory(this)).get(MyViewModel.class);

« SharedPreferences数据永久保存接口 | dataBinding的使用»