如何解决是否有一个 ViewModel 在 Activity 的 onPause进入后台时被清除,我应该使用什么?
我认为将 FragmentActivity 作为 storeOwner 的 Androidviewmodel 是个好主意,以便:
-
处理Fragment之间的交叉通信;
-
处理保持导航的 UI 元素 更改(如 NavigationDrawer 的菜单或工具栏),
-
处理下载数据的临时缓存(防止重复下载 关于 Fragment 创建/销毁)
例如:Fragment 的 onCreateView()(Connects to DB) => Frag 的 onDestroy() (与缓存断开连接,但仍与 DB 保持连接)=> Frag 的 onCreateView() 再次(重新连接到 缓存)).
但最重要的是:
问题是 FragmentActivity() 的 viewmodelStoreOwner 没有被清除 (),...从不, 如果我们为 viewmodel 提供一个假设的生命周期,它从实例化开始,到 onCleared() 结束,并将它们绑定到 Activity 的 storeOwner,它们基本上变成了一个......服务。
因此,在创建处理/侦听 Activity 的 onStart() 和 onPause() 的自定义 viewmodelStoreOwner 之前,我想知道是否可能已经有一个组件可以执行此操作(我不知道),以及该组件将如何通过不同的片段访问。
现在我知道 Activity 有自己的生命周期,但是如果有人认为绝对公开每个组件只是为了访问 Activity 的 LifeCycleOwner .... tbh 我认为这不是最好的方法,Activity 类会变得不可读,塞满了无关的功能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。