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)