окей,
var job: Job? = null
в onStart():
job = GlobalScope.launch {
Log.d("TAG", "start coroutine")
for (x in 0..1000){
Thread.sleep(200)
Log.d("TAG", "$x")
}
}
onPause():
super.onPause()
job?.cancel()
при переходе назад на прошлую активити, коротин продолжает работать
Корутины сами по себе не отменяются. Нужно или делать проверку в каждой итерации цикла, или просто юзай delay (что нужно делать) вместо Thread.sleep, посколько делай суспенд функция, там уже есть проверка нужно ли отменить корутину