是否有一个 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 (将#修改为@)