我知道处理方向变化的解决方案之一是使用 ViewModel 来保存数据,因为它比活动更持久。
然而,我想知道,如果我们在类中创建一个静态变量来保存相同的数据,难道我们不能实现同样的事情吗?
为什么我们要走 ViewModel 路径?
谢谢
好问题!那么,我们能实现同样的目标吗?可能是的,但这就像重新发明轮子一样,而且您很可能最终会得到与 ViewModel 提供的相同或相似的解决方案。我想您在这里需要了解的是,Android 中的活动是底层MVC设计的反映,而您绑定到活动的数据信息与视图本身是解耦的,因此您可以在任何时间点重新绑定您的活动。视图(活动)的实际数据状态重新创建它,因此继续像没有任何更改一样。例如,在屏幕旋转时,您的活动(视图)被破坏,假设其数据状态被保存并传递,然后重新创建,其数据重新绑定,用户可以从她离开的地方继续。这就是 ViewModel 的作用,它管理 Android 生命周期上下文中的活动数据状态。如果你自己也想完成同样的事情,那将是非常困难的,但也是可能的。
| 归档时间: |
|
| 查看次数: |
1310 次 |
| 最近记录: |