android - 在 ViewModel 之间共享数据
问题描述
我的项目中有一个复杂的屏幕,我要打破多个片段。我正在尝试遵循这些类的 MVVM 架构,因此哪个片段有自己的ViewModel
Contract 类。
问题是所有 ViewModel 都需要相同的对象实例(我们称之为Book
)来执行 Room 事务。
它是否有正确的方法LiveData
在 ViewModel 之间共享数据(或)?我知道 Shared ViewModel 的概念,但我不知道我是否可以将它应用到这个案例中。我也考虑过使用MediatorLiveData
,但也没有得到好的方法。
我正在考虑有一个BookObservableProvider
带有LiveData<Book>
(或Rx Subject<Book>
)的类(让我们调用),其中每个 ViewModel 注入相同的实例并加载/更新始终相同的值。
这是一个好方法吗?
解决方案
您应该在片段/活动之间共享这些数据(可能使用 Intents 进行活动),而不是由其他 ViewModel 处理这些数据
推荐阅读
- splunk - 如何搜索在要搜索的字符串中包含双引号的 splunk 查询
- typescript - 打字稿中区分的功能
- java - Java 线程立即终止
- amazon-web-services - 我们不应该都从 API-Gateway + Lambda 堆栈迁移到 Lambda@Edge 以进行 API 服务吗?
- python - 我正在尝试使用这个库 pyModeS,但遇到了错误
- c - 将任何变量存储到 void 指针
- flutter - 如何检查当前日期和时间是否在 Flutter 中的两个给定日期和时间之间
- php - 重写 URL 后如何在 php 中捕获 GET 值
- regex - 让正则表达式查找缺失的单词
- reactjs - 最佳实践如何最初获取数据并在以后使用 React Hooks 等进行更新?