Я хочу использовать сопрограммы вместо обработчиков. У меня есть вызов, который будет обновлять данные каждые несколько секунд. Он вызывается в Job
объекте. Когда я оставляю приложение в фоновом режиме, я хочу отменить это Job
. Когда я возвращаюсь в приложение, я хочу перезапустить эту работу, чтобы выполнить свою работу.
Но как только я отменю работу, она больше не перезапустится. Есть ли способ, как возобновить отмененную работу? Потому что isActive == false
даже когда я повторно инициализирую переменную
var job: Job? = null
job = launch {
while (isActive){
delay(5000)
doStuff()
}
}
Когда я приостанавливаю свою активность, я вызываю job?.cancel()
и job = null
. Когда я ввожу активность, я снова вызову код выше. Я думал, что смогу повторно инициализировать эту работу и снова запустить код обновления.