Здравствуйте.
1) Как получить ID задачи сразу после запуска?
Перепробовал всё, что написано, но до меня, видать, просто не доходит.
Если, например, сразу после
WorkManager.getInstance(this).enqueueUniquePeriodicWork("TagWorker",
ExistingPeriodicWorkPolicy.KEEP,myWorkRequest)
Вызвать:
val workInfo = WorkManager.getInstance(this).getWorkInfoByIdLiveData(myWorkRequest.id)
println(workInfo.value?.id)
То возвращает Null.
в Activity при нажатии на кнопку:
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build()
val myWorkRequest = PeriodicWorkRequest.Builder(Worker::class.java, 15, TimeUnit.MINUTES)
.setConstraints(constraints)
.addTag("WorkerTag")
.setInputData(data.build())
.build()
WorkManager.getInstance(this).enqueueUniquePeriodicWork("TagWorker",
ExistingPeriodicWorkPolicy.KEEP,myWorkRequest)
Сам Worker:
class Worker(context: Context, workerParameter: WorkerParameters): Worker(context, workerParameter){
override fun doWork(): Result {
Log.d("doWork", "doWokr: Success function called")
return Result.success()
}
}
2) Должны ли удаляться с внутренней базы WorkManager строчки о завершенных задачах?
Если пользоваться
WorkManager.getInstance(this).cancelAllWorkByTag("tag")
WorkManager.getInstance(this).cancelAllWork()