Отменить задание в WorkManager при закрытие приложения

Стартую воркер с уникальным именем

    val REFRESH_TOKEN_WORKER_NAME = "RefreshTokenWorker"

    fun startPeriodicRefreshTokenTask(context: Context) {
        val workConstraints = Constraints.Builder()
            .setRequiredNetworkType(NetworkType.CONNECTED)
            .build()

        val periodicWork = PeriodicWorkRequest.Builder(RefreshTokenWorker::class.java, 15, TimeUnit.MINUTES)
            .setConstraints(workConstraints)
            .build()

        WorkManager.getInstance(context).enqueueUniquePeriodicWork(REFRESH_TOKEN_WORKER_NAME, ExistingPeriodicWorkPolicy.REPLACE, periodicWork)
    }

Мне нужно прекратить работу после того как приложение будет закрыто. Потому написал такой код:

override fun onDestroy() {
    super.onDestroy()
    WorkManager.getInstance(this).cancelUniqueWork(REFRESH_TOKEN_WORKER_NAME)
}

Но после выгрузки приложения из памяти воркер продолжает работать. Как остановить работу воркера после полного закрытия приложения?


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