打算错误地使用 ViewModel 和多个数据源?

问题描述

这里是 Android 中 viewmodelmutablelivedata<> 的新手,遇到了逻辑/操作顺序,我想知道我是否在接近这个错误

背景: 详细信息页面显示来自公共数据对象的字段。此页面显示的数据全部来自三个外部来源和 HTTP/GET 调用一个调用失败不应阻止其他调用正确加载数据。这意味着当用户加载页面时,将在返回调用时填充数据。三个调用完成后,我将对象发送到一个ObjectBox数据库中。

我遇到的问题是 HTTP 返回都在后台线程上,所以我使用 .postValue() 来保存数据。当最后一次调用返回时,我将 viewmodel 中的值加载到我的 ObjectBox 对象中,并将其保存到数据库中。

当然,.getValue() 上的 mutablelivedata 有以下注意事项:

Note that calling this method on a background thread does not guarantee that the latest value set will be received.

发生了什么 - 在 ObjectBox 代码运行时,在从上次 GET 调用更新后不久,.getValue() 调用并不总是返回正确的数据。

是否有对 viewmodel 的调用,我可以使用它来指示字段已完成更新,然后更新 ObjectBox?我是否一直在等待所有调用完成后再显示任何内容(因此在更新显示之前执行我的数据库保存)?我可以在后台线程中使用 .setValue() 来确保数据在那个时候更新吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)