GlobalScope和MainScope有什么区别?
//Accessing data from Room
GlobalScope.launch {
v.tvStoreName.text = pfViewModel.getStoreName()
pageDetails.pageNumber = currentPage
pageDetails.pageSize = pageSize
pfViewModel.getTransactions(pageDetails, toolbarBuilder?.getDate()!!)
}
全局作用域(GlobalScope)有时会出现非常难以重现的错误。
致命异常:android.view.ViewRootImpl$CalledFromWrongThreadException: 只有创建视图层次结构的原始线程才能触摸其视图。
MainScope().launch {
var storeName = ""
withContext(Dispatchers.Default) {
storeName = pfViewModel.getStoreName()
}
v.tvStoreName.text = storeName
}
lifecycleScope
(或者根据你所在的组件选择viewModelScope
)。 - JoffreyviewModelScope
和lifecycleScope
,怎么办?比如协程是在自定义视图库上实现的? - Bitwise DEVS