本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点
ViewModel
和 LiveData
是 Android Jetpack 组件库中的两个核心组件,它们能帮助开发者更有效地管理 UI 相关的数据,并且能够在配置变更(如屏幕旋转)时保存和恢复 UI 数据。
ViewModel作用
-
瞬态数据丢失的恢复,比如横竖屏
-
异步调用的内存泄漏
-
处理类膨胀提高维护难度和测试难度
-
使视图和数据能够分离
-
是介于视图View和数据Model之间的桥梁
LiveData的作用
用于ViewModel数据返回时通知View更新,是ViewModel和View之间的桥梁
那如何在 Kotlin 中使用 ViewModel
和 LiveData
呢。
1. 添加依赖
首先,需要在 build.gradle
文件中添加相关依赖:
dependencies {
def lifecycle_version = "2.6.1"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
}
2. 创建 ViewModel 类
ViewModel
用于存储和管理与 UI 相关的数据,它能在配置变更时继续存在。创建一个继承自 ViewModel
的类:
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
class MyViewModel : ViewModel() {
// 使用 MutableLiveData 来保存数据
private val _data