At some point, you'll face a situation where you need to halt a coroutine that's already underway. Let's explore the process of doing so.
Terminating a Job
A job has several functions at its disposal, including cancel
, which appears to be the ideal solution. Moreover, we can utilize join
to wait until the job has completed its termination.
The example below demonstrates a job being terminated:
runBlocking {
val job = launch(Dispatchers.Default) {
for (i in 0..1000) {
delay(50)
println("$i..")
}
println("Job is completed")
}
delay(500)
println("Terminating")
job.cancel()
job.join()
println("Terminated and done")
}
The output will be:
0..
1..
2..
3..
4..
5..
6..
7..
8..
Terminating
Terminated and done
For more information on canceling Kotlin coroutines like a pro, check out this article: 5 Essential Techniques.
Top comments (0)