ViewModel是Android Jetpack中的一个组件,用于帮助管理UI相关的数据和状态。它提供了一种将数据与UI分离的方式,确保数据在配置变化(如屏幕旋转)时得以保留,并且能够在不同的组件之间共享数据。
ViewModel的主要目的是解决以下问题:
-
配置变化时的数据丢失问题:当屏幕旋转或配置发生变化时,Activity或Fragment会被销毁并重新创建。这导致之前存储在这些组件中的数据丢失。ViewModel的引入可以使数据在配置变化时得以保留,以便在重新创建后恢复。
-
数据共享问题:在一个复杂的应用中,不同的组件(如Activity和Fragment)可能需要共享某些数据。传统的做法是使用Bundle或Intent来传递数据,但这种方式往往不够灵活且容易出错。ViewModel提供了一种更简单和可靠的方式来共享数据,不受组件生命周期的限制。
下面我们来看一个使用ViewModel的示例:
首先,我们需要添加ViewModel库的依赖。在app/build.gradle文件中的dependencies块中加入以下代码:
implementation 'androidx.lifecycle:lifecycle-viewmode