Create a Repeating Task Using Coroutine
Mar 10, 2021
Example of how to create repeating Task using Kotlin Coroutine
add Coroutine in Build.gradle
implementation ‘org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2’
To create a repeating Job
/**
* start Job
* val job = startRepeatingJob()
* cancels the job and waits for its completion
* job.cancelAndJoin()
* Params
* timeInterval: time milliSeconds between next Tick
*/
private fun startRepeatingJob(timeInterval: Long): Job {
return CoroutineScope(Dispatchers.Default).launch {
while (NonCancellable.isActive) {
//repeate Task Here delay(timeInterval)
}
}
}
To start Job:
Job repeatJob = startRepeatingJob(1000L)
To Stop Job:
secondTickJob.cancel()
Same approach using Handlers
repeateTaskkHandler = Handler()
taskRunnable= Runnable {
//repeate Task HererepeateTaskkHandler?.postAtTime(taskRunnable, interval)
}
taskRunnable.run()
Stop:
if (secondClockHandler != null) {
repeateTaskkHandler?.removeCallbacks(taskRunnable)
}