Вы можете использовать забаву WorkManager.enqueueUniquePeriodicWork
Эта функция требует 3 параметра:
tag
(строка), поэтому она будет искать другиеранее созданные рабочие запросы с этим тегом strategy
для использования при поиске других ранее созданных рабочих запросов.Вы можете либо заменить предыдущую работу, либо оставить ее - своей новой
work request
Например, в проекте kotlin, где мне нужно было выполнять работу по захвату местоположения, чтобы запускаться каждый раз,Я создал забаву, которая начала работу так:
fun init(force: Boolean = false) {
//START THE WORKER
WorkManager.getInstance()
.enqueueUniquePeriodicWork(
"locations",
if (force) ExistingPeriodicWorkPolicy.REPLACE else ExistingPeriodicWorkPolicy.KEEP,
PeriodicWorkRequest.Builder(
LocationsWorker::class.java,
PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS,
TimeUnit.MILLISECONDS)
.build())
}