什么是 ViewModel?

ViewModel 是 Android 架构组件之一,用于 分离 UI 逻辑与业务逻辑,确保数据在配置更改(如屏幕旋转)时持久化。

  • 保存 UI 相关数据
  • 与 Repository 层解耦
  • 生命周期感知,避免内存泄漏
Android_ViewModel

LiveData 的特性

LiveData 是一种 生命周期感知 的可观察数据持有类,确保数据只在需要时更新。

  • 自动处理配置更改:数据会自动恢复
  • 避免崩溃:当 Activity/Fragment 被销毁时,LiveData 会停止通知
  • 支持数据绑定:与 Data Binding 库无缝集成
LiveData_Demo

ViewModel 与 LiveData 的协作

  1. ViewModel 通过 LiveData 暴露数据给 UI
  2. LiveData 可以观察数据变化并触发 UI 更新
  3. 使用 LiveData.observe() 监听数据
viewModel.dataLiveData.observe(this, Observer { value ->
    // 更新 UI
})

实践建议

  • 避免在 ViewModel 中执行耗时操作,应交由 Repository 处理
  • 使用 Transformations.map() 对 LiveData 进行转换
  • 查阅 Android 官方文档 深入理解
Android_Lifecycle_Aware