Jetpack: ViewModelSavedState遇到的问题

ViewModelSavedState是android的Jetpack的一个架构.

即使进程在后台被系统杀死的数据也存活。

意思就是当用户退出app后,可能会因为手机内存不足的原因而系统杀死我们的APP。这个时候需要存储我们的数据。

即杀死之前保活数据。

ViewModelSavedState就是一个解决方案。


步骤:

1.引入依赖

Jetpack: ViewModelSavedState遇到的问题_第1张图片

此依赖已经处于beta稳定版。

2.在ViewModel的构造中传入SavedHandle:

Jetpack: ViewModelSavedState遇到的问题_第2张图片

3.activity中使用:

Jetpack: ViewModelSavedState遇到的问题_第3张图片

不幸的是~这里根据提示传入参数发现出现了错误。

后来查阅了官网文档:

提高appcompat的版本到1.1.0+后就没报错了。

不报错的原因是新版的AppCompatActivity系统已经帮我们实现了owner这个接口:

Jetpack: ViewModelSavedState遇到的问题_第4张图片

Jetpack: ViewModelSavedState遇到的问题_第5张图片

这样就型了。

注意和ViewModel的区别。

ViewModel是管理activity的数据的。而如果不用ViewModelSavedState,只是单纯的使用ViewModel和LiveData会因为后台杀死app而重建导致ViewModel对象的重新创建,其保留的数据也就不再了。所以引入了ViewModelSavedState概念。

 

注意,按back键还是无法保留数据。因为back建是主动结束的操作。意思就是告诉操作系统。i am OK! Please finish App.

你可能感兴趣的:(Android,Android,Jetpack)