我有两种更新LiveData
的value
的方法。
Fitst
myLiveData.value = myLiveData.value?.apply {
arg1 = value1
arg2 = value2
}
只需更新现有值,然后再次传递。
第二
viewState.value = MyObject(arg1 = value1, arg2 = value2)
每次创建一个新对象并传递它。
哪种方式在优化和代码美方面更好?
P.S。第一项重要得多。提前谢谢。
如果您有两个必须同时可用的值,则第二种方法是唯一有意义的方法。使用第一种方法时,第一个值将很快被第二个值覆盖。观察者很可能会错过第一个值。并且,设置了第二个值的[[after附加观察者将永远只能看到第二个值。
每次创建一个新对象的成本不是很高。不要尝试以这种方式进行优化-这根本不相关。