Lorenzo Testa
08/01/2019, 11:34 AMIcaro Temponi
08/01/2019, 11:43 AMval parent1 = CoroutineScope(Job())
val parent2 = CoroutineScope(Job())
val child = parent1.launch {
//Do something
} parent2.coroutineContext[Job]?.invokeOnCompletion { child.cancel() }
Lorenzo Testa
08/01/2019, 11:52 AMIcaro Temponi
08/01/2019, 4:33 PMfun Job.addTo(parent: CoroutineScope): Job {
val job = parent.coroutineContext[Job]
job?.invokeOnCompletion { this.cancel() }
return this
}
then run:
parent1
.launch { //Do something }
.addTo(parent2)
.addTo(parent3) //Add to as many parents as you want
Lorenzo Testa
08/01/2019, 4:52 PM