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

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

如何解决打算错误地使用 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 举报,一经查实,本站将立刻删除。