我在Android应用程序中有一段Kotlin代码,我在其中使用了协程和ViewModelScope。我想确认在viewModelScope.launch块中使用launchIn(viewModelScope)是否会导致任何问题或被视为标准做法。下面是代码片段以供参考:
fun test() {
testJob?.cancel()
testJob = viewModelScope.launch {
delay(1000L)
flow<String> {
//
}.onEach {
//
}.launchIn(viewModelScope)
}
}
1条答案
按热度按时间h7appiyu1#
这是安全的,但一个不寻常的事情要做。通过直接在作用域中启动它,集合成为一个新的兄弟协程,而不是子协程或只是当前协程本身的一部分。
这通常是更明智的:
但我能想到的一个可能的原因是,如果你想在开始收集后做其他事情,而不是等待它。