在下面的一段代码中:
viewModelScope.launch {
isLoading.postValue(true)
.....
}
我们在主线程中,因为viewModelScope.launch
默认在主线程上运行,与viewModelScope.launch(dispatchers.main)
在主线程中,使用 postValue 有意义吗?我的意思是,不应该是这样的:isLoading.value = true ?
我在互联网上发现了很多这样的代码块,是对还是错?
根据文档:
根据文档:
设定值():
设置值。如果有活跃的观察者,该值将为
派遣给他们。该方法必须从主线程调用。
后值():
将任务发布到主线程以设置给定值。如果你打电话
在主线程执行发布之前多次使用此方法
任务时,只会调度最后一个值。
因此,如果可能的话,我总是会使用 setValue,在您的情况下,因为您已经注意到 setValue 更好,因为您可以确定它始终位于主线程上。
然而,postValue 也可以从主线程调用,但性能会稍差一些。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)