在 Android 中更新 LiveData 的最佳方式是什么?
What's the best way to update LiveData in Android?
我有两种方法可以更新 LiveData
的 value
。
菲斯特
myLiveData.value = myLiveData.value?.apply {
arg1 = value1
arg2 = value2
}
只需更新现有值并再次传递它。
第二
viewState.value = MyObject(arg1 = value1, arg2 = value2)
每次创建一个新的对象并传递给它。
在优化和代码美观方面,哪种方式更好?
P.S。第一个术语更为重要。提前致谢。
如果您有两个必须同时可用的值,则第二种方法是唯一有意义的方法。使用第一种方法,第一个值将很快被第二个值覆盖。观察者完全有可能错过第一个值。并且,在设置第二个值后附加的观察者将只能看到第二个值。
每次创建一个新对象的代价不是很大。不要尝试以这种方式进行优化 - 它根本不相关。
我有两种方法可以更新 LiveData
的 value
。
菲斯特
myLiveData.value = myLiveData.value?.apply {
arg1 = value1
arg2 = value2
}
只需更新现有值并再次传递它。
第二
viewState.value = MyObject(arg1 = value1, arg2 = value2)
每次创建一个新的对象并传递给它。
在优化和代码美观方面,哪种方式更好?
P.S。第一个术语更为重要。提前致谢。
如果您有两个必须同时可用的值,则第二种方法是唯一有意义的方法。使用第一种方法,第一个值将很快被第二个值覆盖。观察者完全有可能错过第一个值。并且,在设置第二个值后附加的观察者将只能看到第二个值。
每次创建一个新对象的代价不是很大。不要尝试以这种方式进行优化 - 它根本不相关。