android - 是否有一个 ViewModel 在 Activity 的 onPause 上被清除(进入后台),我应该改用什么?
问题描述
我认为将 FragmentActivity 作为 storeOwner 的 AndroidViewModel 是一个好主意,以便:
处理 Fragment 之间的交叉通信;
处理保持导航更改的 UI 元素(如 NavigationDrawer 的菜单或工具栏),
处理下载数据的临时缓存(以防止在片段创建/销毁时重复下载)
例如:Fragment 的 onCreateView()(连接到 DB) => Frag 的 onDestroy()(从缓存断开,但仍然连接到 DB)=> Frag 的 onCreateView() 再次(重新连接到缓存))。
但最重要的是:
- 处理一定程度的后台数据库侦听,这意味着不像通知服务那样能够在应用程序进入后台后继续存在,但也不像仅由视图调用那样受到限制,这意味着它们需要连接应用程序启动。
问题是 FragmentActivity() 的 ViewModelStoreOwner 没有获得 clear(),...永远不会,如果我们为 ViewModels 提供一个假设的生命周期,从实例化开始,到 onCleared() 结束,并将它们绑定到Activity的storeOwner他们基本上变成了一个……Service。
因此,在创建处理/侦听 Activity 的 onStart() 和 onPause() 的自定义 ViewModelStoreOwner 之前,我想知道是否可能已经有一个组件可以执行此操作(我不知道),以及如何通过不同的片段。
现在我知道活动有自己的生命周期,但是如果有人认为完全公开每个组件只是为了访问活动的 LifeCycleOwner.... tbh 我认为这不是最好的方法,活动类将变得不可读,挤满了不相关的功能。
解决方案
推荐阅读
- jquery - 有没有办法将脚本值发送到 MVC 中的受保护覆盖 void OnActionExecuted
- javascript - 如何从 .vue 组件中调用 Vue.set?
- r - 将字符串传递给过滤器的参数(dplyr)
- spring - 在 Tomcat 上部署 Spring Boot 2.0.4 SOAP Web 服务
- angular - 'rootDir' 应包含所有源文件
- matlab - 将数值转换为字符向量时未得到预期结果
- python - 我在 django 中的数据插入系统不起作用
- json - 使用带有 react-native 的 gfs 从 nodejs 读取流数据
- javascript - 来自 XSD 映射的 Google Apps 脚本 Un/Marshal?
- php - 如何从另一个文件夹访问 cookie?