如何解决打算错误地使用 ViewModel 和多个数据源?
这里是 Android 中 viewmodel
和 mutablelivedata<>
的新手,遇到了逻辑/操作顺序,我想知道我是否在接近这个错误。
背景: 详细信息页面,显示来自公共数据对象的字段。此页面显示的数据全部来自三个外部来源和 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 举报,一经查实,本站将立刻删除。