【发布时间】:2020-06-01 05:35:51
【问题描述】:
我正在使用协程来格式化列表。
这就是它的样子
val job : Job? = null
private fun formatList(originalList:MutableList<MY_OBJECT>, callback : (MutableList<MY_OBJECT>) -> Unit){
if(job != null && !job?.isCompleted!!){
job?.cancel()
}
job = viewModelScope.launch(Dispatchers.IO) {
originalList.foreach { item ->
//do something with the item.
}
}
}
这个方法可以在运行时多次调用,为了避免它做同样的事情,如果工作还没有完成,我添加了一个取消调用。
问题是,在运行时,foreach 块中的东西会随机产生一些与索引相关的崩溃。
为什么会这样?这是关于协程执行背后的事情吗?或者对于 foreach 循环有什么我不知道的地方吗?
【问题讨论】: