今日内容是SavedStateHandle以及SharedPreferences。
1、SavedStateHandle(进程被杀保存数据)
1、依赖
在build.gradle的dependencies中添加依赖:
1 | implementation 'androidx.lifecycle:lifecycle-viewmodel-savedstate:1.0.0-alpha01' |
2、MyViewModel的写法
1 | public class MyViewModel extends ViewModel { |
- 此时不使用livedata来保存数据,使用SavedStateHandle。
- 构造函数需要初始化,在主函数中初始化viewModel时会传进来相应的数据。
- 这个就相当于一个Map,一个关键字对应一个数据。
- getNumber()返回的是一个livedata类型的数据。
3、主函数的写法
1 | public class MainActivity extends AppCompatActivity { |
- 此时viewmodel创建时需要传递一个参数给构造函数。
4、总结
该方法用于进程被杀死的情况恢复数据,如果用户退出程序,那么数据还是不存在的。
2、SharedPreferences(数据的存储)
1 | SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE); |
一般写法,创建一个与本activity名称相同的存储文件,存储关键字为NUMBER的数据,值为100。
editor.apply();是异步提交。
如果MyViewModel继承的是AndroidViewModel的话,则关机、退出等都可以保存数据。
myviewmodel代码:
1 | public class MyViewModel extends AndroidViewModel { |
主进程代码:
1 | public class MainActivity extends AppCompatActivity { |