【发布时间】:2017-11-02 10:28:15
【问题描述】:
我正在尝试使用 Kotlin 协程在后台运行一些繁重的工作。
但是我收到了这个错误信息,
'android.view.ViewRootImpl$CalledFromWrongThreadException: 只有 创建视图层次结构的原始线程可以触及其视图。'
fun setList() {
media_image_list.adapter = imageListAdapter
...
launch {
val images = getImages(galleryPath)
imageListAdapter.setItems(images)
}
}
suspend private fun getImages(): MutableList<Image> {
val uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI
...
}
如何让它在后台正确运行?
【问题讨论】:
-
你能不能像这样在
Unconfined模式下运行协程:launch(Unconfined)? -
@s1m0nw1 有效,如果与任何 UI 相关的作业有效,我是否需要使用 Unconfined?