ViewModel()
时间: 2023-12-03 07:05:14 浏览: 70
Model-View-ViewModel
`ViewModel` 是 Android 架构组件中的一个类,用于帮助管理和保持与 UI 相关的数据。它的主要目的是在配置更改(如屏幕旋转)或配置更改后的重新创建时保持数据的一致性。
要使用 `ViewModel`,首先需要在项目中添加以下依赖:
```groovy
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
```
然后,在你的 `Activity` 或 `Fragment` 中创建一个继承自 `ViewModel` 的子类,并在其中保持所需的数据。例如:
```kotlin
import androidx.lifecycle.ViewModel
class MyViewModel : ViewModel() {
var count = 0
// 其他需要保持的数据和业务逻辑
}
```
接下来,在你的 `Activity` 或 `Fragment` 中获取 `ViewModel` 的实例,并使用它来访问和更新数据。例如:
```kotlin
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
class MyActivity : AppCompatActivity() {
private val viewModel: MyViewModel by viewModels()
// 在这里使用 viewModel 访问和更新数据
}
```
通过使用 `by viewModels()`,你可以方便地获取与当前 `Activity` 或 `Fragment` 关联的 `ViewModel` 实例。每次获取 `ViewModel` 实例时,都会获得同一个实例,即使发生配置更改。
`ViewModel` 对象的生命周期会与关联的 `Activity` 或 `Fragment` 的生命周期相对应。这样,当配置更改发生时,例如屏幕旋转时,`ViewModel` 的数据会保持不变,以便在新创建的 `Activity` 或 `Fragment` 中使用。
使用 `ViewModel` 可以有效地管理和保持与 UI 相关的数据,提高应用程序的可维护性和可测试性。
阅读全文