我在做
private val uiScope = CoroutineScope(Dispatchers.Main)
创建一个协程镜,并使用它在我的片段中启动协程。
uiScope.launch {
withContext(Dispatchers.Default) {
....
}
....
}
当片段从窗口分离时,我对uiScope进行了取消。在创建uiScope时,我还应该传递一个job()吗?
最佳答案
fun CoroutineScope
的文档对此很明确:
对于顶级范围而言,使用传播其子项故障的作业不是最佳选择。您应该改为使用 MainScope
工厂功能。它不带任何参数,并精确地构造您需要的范围。从文档: