我目前有一个执行某些过程的工作(这需要占用大量CPU,大约需要10秒钟)
但是我想在下一次调用executeProcess()时立即取消它。
private var myJob: Job? = null
fun executeProcess() {
myJob?.cancel()
myJob = scope.launch(Dispatchers.IO) {
//doCPUIntensiveTask()
//This is always Active!
println("isActive $isActive ")
}
}
如果我想重用同一作业对象,怎么办?如果不可能的话,还有其他解决方法吗?
答案 0 :(得分:1)
Flow
+ flatMapLatest
用于相同的目的Flow docs,flatMapLatest docs