Почему не стартует корутина при onStart() активити?

Такая ситуация: мне нужно сохранять данные в Firebase. Я это делаю фоново с помощью корутины. Сейчас она запускается в методы onCreate(). А мне нужно сделать так, чтобы при onStop() она заканчивала свою работу, а при onStart() снова запускалась.

Проблема в том, что при onStop() она прекращает работу, но потом при onStart() не запускается:( В чём может быть загвоздка? Есть какое-нибудь решение? Спасибо.

Пример кода:

private val SaveFirebaseData = CoroutineScope(Dispatchers.Default).launch {
    while (this.isActive) {
        try {
            delay(15000)
            SaveUserDataOnFirebase(applicationContext)
        }
        catch (e: Exception) { println(e) }
    }
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    SaveFirebaseData.start()
}

override fun onStop() {
    super.onStop()
    SaveFirebaseData.cancel()
}

override fun onStart() {
    super.onStart()
    SaveFirebaseData.start()
}

override fun onDestroy() {
    super.onDestroy()
    SaveFirebaseData.cancel()
}

Ответы (0 шт):