扩展BaseObservable的ViewModel和Android ViewModel Class有什么区别?

Urv*_*ana 13 java android mvvm viewmodel observable

我目前正在研究MVVM架构模式,但我在扩展BaseObservable的Custom ViewModel类和Android本身提供的另一个ViewModel之间感到困惑.

Mr.*_*r.Q 6

您的自定义 ViewModel 只是您视图的数据持有者,并且因为它绑定到您的视图(并且因为它是一个 Observable 对象),所以它可以通知视图有关数据更改的信息。但是,它不知道诸如方向更改(视图旋转)等配置更改,因此,在这种情况下,程序员应在此处保存和恢复数据示例

另一方面,Android 提供的 ViewModel 知道这些配置更改,因此其数据在整个 Activity 生命周期中保持一致。当活动销毁时,ViewModel 将被销毁。

  • “当活动销毁时,ViewModel 将被销毁。” 这在技术上是不正确的,ViewModel 背后的主要思想是持久化配置更改。这就是在 onCreate 中使用 ViewModelProvider 而不是直接构造的原因。 (4认同)