Я добавляю работников в очередь, как показано ниже.Однако, иногда рабочий не будет вызван.Как я могу узнать, что работник не был казнен, чтобы я мог попытаться повторно поставить его в очередь?Может быть, использовать экземпляр Operation
, возвращаемый enqueue()
?Как это использовать?Если да, возможно ли получить подсказку о причине сбоя при запуске Worker?
Обратите внимание, что мне не нужно знать, произошел ли сбой Worker (return Result.FAILURE
).Случай, который я хочу рассмотреть, - это когда работник даже не вызывается, что иногда случается.
OneTimeWorkRequest sendMessageWorker = new OneTimeWorkRequest.Builder(SendMessageWorker.class)
.setInputData(data)
.setBackoffCriteria(BackoffPolicy.LINEAR, backOffDelayInMillis, TimeUnit.MILLISECONDS)
.build();
Operation operation = WorkManager.getInstance()
.beginUniqueWork(SendMessageWorker.class.getSimpleName(), ExistingWorkPolicy.APPEND, sendMessageWorker)
.enqueue();