ViewModelSavedState是android的Jetpack的一个架构.
即使进程在后台被系统杀死的数据也存活。
意思就是当用户退出app后,可能会因为手机内存不足的原因而系统杀死我们的APP。这个时候需要存储我们的数据。
即杀死之前保活数据。
ViewModelSavedState就是一个解决方案。
1.引入依赖
此依赖已经处于beta稳定版。
2.在ViewModel的构造中传入SavedHandle:
3.activity中使用:
不幸的是~这里根据提示传入参数发现出现了错误。
后来查阅了官网文档:
提高appcompat的版本到1.1.0+后就没报错了。
不报错的原因是新版的AppCompatActivity系统已经帮我们实现了owner这个接口:
这样就型了。
注意和ViewModel的区别。
ViewModel是管理activity的数据的。而如果不用ViewModelSavedState,只是单纯的使用ViewModel和LiveData会因为后台杀死app而重建导致ViewModel对象的重新创建,其保留的数据也就不再了。所以引入了ViewModelSavedState概念。
注意,按back键还是无法保留数据。因为back建是主动结束的操作。意思就是告诉操作系统。i am OK! Please finish App.