微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有一个 ViewModel 在 Activity 的 onPause进入后台时被清除,我应该使用什么?

如何解决是否有一个 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 举报,一经查实,本站将立刻删除。