gpt4 book ai didi

android - 为什么 View 模型不应该引用 View ?它只是设计 [如 SOC(关注点分离)] 还是其他?

转载 作者:行者123 更新时间:2023-11-29 16:30:11 26 4
gpt4 key购买 nike

当我浏览 Android developer manual link 中的 View 模型时,我看到了这个警告。

警告:ViewModel 绝不能引用 View 、生命周期或任何可能包含对 Activity 上下文的引用的类。

这只是一个 SOC(关注点分离)设计决策,还是 android 系统设计的内部原因是采用这种方法的原因。

如果它仅用于测试 View 模型,那么您再次在 View 模型中模拟该文件并对其进行测试。我还缺少什么吗?

最佳答案

在配置更改(例如,屏幕旋转、多窗口、键盘可用性)中, Activity 及其所有 UI 元素( fragment 、 View 等)将被重新创建。 ViewModel 。相反,重新创建的 Activity 获得与原始实例相同的 ViewModel

如果 ViewModel 包含对旧 Activity 的引用(直接或间接),您至少有两个问题:

  1. 您有内存泄漏,因为当 ViewModel 未完成时旧 Activity (及其引用的所有 Activity )无法被垃圾回收

  2. 您尝试对旧 Activity 实例执行的任何操作都可能崩溃,因为该 Activity 已被销毁

关于android - 为什么 View 模型不应该引用 View ?它只是设计 [如 SOC(关注点分离)] 还是其他?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56692318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com