1.ViewModle生命周期贯穿整个activity,使用SavedStateHandle类来临时保存数据,保证数据不被旋转屏幕等ondestroy()操作摧毁
2.SharedPreferences将简单的数据以xml文件形式保存在本地,并提供了基本的读写操作
因此使用ViewModle + SharedPreferences的流程如下:
读:
用SharedPreferences的getXXX()读数据,获取的数据传入SavedStateHandle临时保存,view直接取SavedStateHandle临时数据即可
写:
使用SharedPreferences.Editor类,用.edit()方法保存SavedStateHandle中的临时数据到xml文件
附:带有SavedStateHandle的ViewModle实例化方法
xxxx = new ViewModelProvider(this,new SavedStateViewModelFactory(getApplication(),this)).get(xxxx.class);