更新LiveData返回的对象属性

时间:2018-04-06 21:28:02

标签: java android android-room android-architecture-components android-livedata

我对更新从Room by LiveData提取的对象的对象属性的最佳做法有疑问。

目前,当我的观察者在我的活动中被触发时,我获取返回的对象并将其传递回视图模型以保留引用,然后通过视图模型中定义的setter更新属性,然后更新对象在房间里

我的问题是,这被认为是最佳做法还是有更好的方法来实现这一目标?

我知道MutableLiveData,但这需要我获取每个单独的对象属性,更新它们然后转售每个属性,而我更愿意只获取对象,更新并重新保存?

由于

1 个答案:

答案 0 :(得分:0)

只要从LiveData本身获取的对象(我们称其为对象A)不用作将来的参考对象,就可以确保该对象正常工作。

因此,如果执行以下操作,则是一个很好的解决方案:

  1. 活动动作
  2. ViewModel调用加载对象A
  3. 对象A放置在LiveData内
  4. 在活动中观察到LiveData
  5. 将观察到的对象A传递给函数ViewModel
  6. ViewModel中的函数更新对象A中的属性
  7. 已更新的对象A在ViewModel中设置为对象B引用
  8. 需要对象时,在ViewModel中引用对象B