由上图官网的描述所示可知,ViewModel的用处:
1.就是用于恢复界面的作用(参考ViewModel)
2.从界面控制逻辑中分理处视图数据所有权
接下来试试 创建一个VIewModel后恢复页面重新创建后的数据
创建一个简单的页面
创建一个简单的ViewModel
正常情况下,修改页面的数据,然后页面旋转重建后,页面数据会变回默认 (这里暂不做演示,有兴趣的朋友自己去试一下,不使用viewModel的情况跟使用viewModel的情况)
这里使用了savedInstanceState判断是否重建了,其实也可以直接在onCreate中,判断tvLiveData.getValue是否为空,非空则修改页面数据即可
可以通过viewModel恢复数据的原因,即上面第二张图片,viewModel的生命周期,覆盖了activity的整个生命周期,直到activity再次正常退出并正常创建。
屏幕竖屏横屏翻转情况下activity的生命周期变化
ViewModel的使用就是那么简单,配合liveData数据回调(只会在前台运行中才回调数据),再配合okhttp在viewModel实现网络请求以及其他一些数据处理。