ViewModel的生命周期
Jetpack为开发者提供了ViewModel的概念,将页面所需要的数据从V层和M层中剥离出来,ViewModel是介于View层和Model层的一个桥梁,使得视图和数据即区分开来,又能保持联系。
生命周期
当Android应用程序退回到桌面,或者横竖屏切换时,Activity等组件可能会丢失状态或者是被销毁,这时,开发者通常需要考虑数据的保存和恢复,常见的就是通过onSavaInstanceState()方法和onRestoreInstanceState()方法来实现,有了ViewModel,就可以用更简单的方法来保存数据了。这是为什么呢?
ViewModel独立于组件的配置的变化,也就是说,当发生特殊情况导致Activity重新执行某些生命周期时,ViewModel的生命周期并不会发生变化。
ViewModel的生命周期依赖于对应的Activity的生命周期,通常会在Activity第一次onCreate()时创建ViewModel,Activity在生命周期中可能会触发多次onCreate()(例如配置发生变化),而ViewModel只会在第一次onCreate()时创建,ViewModel的生命周期一直持续到Activity最终销毁。