什么是 ViewModel?
ViewModel 是 Android 架构组件之一,用于 分离 UI 逻辑与业务逻辑,确保数据在配置更改(如屏幕旋转)时持久化。
- 保存 UI 相关数据
- 与 Repository 层解耦
- 生命周期感知,避免内存泄漏
LiveData 的特性
LiveData 是一种 生命周期感知 的可观察数据持有类,确保数据只在需要时更新。
- 自动处理配置更改:数据会自动恢复
- 避免崩溃:当 Activity/Fragment 被销毁时,LiveData 会停止通知
- 支持数据绑定:与 Data Binding 库无缝集成
ViewModel 与 LiveData 的协作
- ViewModel 通过 LiveData 暴露数据给 UI
- LiveData 可以观察数据变化并触发 UI 更新
- 使用
LiveData.observe()
监听数据
viewModel.dataLiveData.observe(this, Observer { value ->
// 更新 UI
})
实践建议
- 避免在 ViewModel 中执行耗时操作,应交由 Repository 处理
- 使用
Transformations.map()
对 LiveData 进行转换 - 查阅 Android 官方文档 深入理解