1.什么是ViewModel
具备宿主生命周期感知能力的数据存储组件
ViewModel保存的数据,在页面因 配置变更导致页面销毁 重建之后依然是存在的
配置变更:横竖屏切换、分辨率调整、权限变更、系统字体样式变更...其实就是ViewModel实例被保存了下来,页面重建之后获取的ViewModel是同一个
2.基本用法
常规用法:存储的数据,仅仅只能当页面因为配置变更导致的销毁再重建时可复用,复用的是ViewModel...> T get(@NonNull String key, @NonNull Class modelClass) {
//1.从mViewModelStore中根据key去找ViewModel...(T) viewModel;
}
}
当调用get()方法的时候,我们只是传递了一个ViewModel的.class对象,就会把我们ViewModel的className名字拼接上DEFAULT_KEY...作为Key,
这就是在ViewModelStore中存储的Key,Value是我们的ViewModel的.class对象
我们知道了ViewModel是从ViewModelStore中获取的,那既然想做到