Отменить задание в 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)
}
Но после выгрузки приложения из памяти воркер продолжает работать. Как остановить работу воркера после полного закрытия приложения?