我对更新 LiveData 从 Room 获取的对象的对象属性的最佳实践有疑问。
当前,当我的观察者在我的 Activity 中被触发时,我获取返回的对象并将其传递回 View 模型以保留引用,然后通过 View 模型中定义的 setter 更新属性,然后更新 Room 中的对象
我的问题是这被认为是最佳实践还是有更好的方法来实现这一目标?
我了解 MutableLiveData,但这需要我获取每个单独的对象属性,更新它们,然后转售每个属性,而我更愿意只获取对象,更新它并重新保存?
谢谢
最佳答案
只要从 LiveData 本身检索的对象(我们称之为对象 A)不用作 future 的引用对象,就肯定可以工作。
因此,如果您执行以下操作,这是一个很好的解决方案:
- Activity 操作
- ViewModel 调用加载对象 A
- 对象 A 放置在 LiveData 内
- 在 Activity 中观察到 LiveData
- 观察到的对象 A 被传递给函数 ViewModel
- ViewModel 中的函数更新对象 A 中的属性
- 更新后的对象 A 设置为 ViewModel 中的对象 B 引用
- 当需要Object时,在ViewModel中引用Object B
关于java - 更新 LiveData 返回的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49701201/