Невозможно запланировать уникальную работу на WorkManager - PullRequest
0 голосов
/ 31 января 2019

Я использую менеджер работ для планирования уникальной работы.Хотя он прекрасно работает на большинстве телефонов, он не может планировать на определенном устройстве Mi Max.Это фрагмент кода

Constraints myConstraints = new Constraints.Builder()
        .setRequiredNetworkType(NetworkType.CONNECTED)
        .build();
OneTimeWorkRequest myWork =
         new OneTimeWorkRequest.Builder(MyWorker.class)
                 .setInitialDelay(transmissionFreq, TimeUnit.SECONDS)
                 .setConstraints(myConstraints)
                 .addTag("JobTag")
                 .build();
WorkManager.getInstance().enqueueUniqueWork("JobTag", ExistingWorkPolicy.REPLACE, myWork);

Из logcat я могу найти под журналами.

2019-01-31 20:52:00.255 1286-1308/com.inmobi.data.test D/WM-Processor: Processor cancelling 59ee78d1-8a8b-4d66-8392-40b634553840
2019-01-31 20:52:00.256 1286-1308/com.inmobi.data.test D/WM-Processor: WorkerWrapper could not be found for 59ee78d1-8a8b-4d66-8392-40b634553840
2019-01-31 20:52:00.259 1286-1308/com.inmobi.data.test D/WM-GreedyScheduler: Cancelling work ID 59ee78d1-8a8b-4d66-8392-40b634553840
2019-01-31 20:52:00.277 1286-1308/com.inmobi.data.test D/WM-PackageManagerHelper: androidx.work.impl.background.systemalarm.RescheduleReceiver enabled
2019-01-31 20:52:00.294 1286-1308/com.inmobi.data.test D/WM-SystemJobScheduler: Scheduling work ID 115c9814-d1f7-488c-913e-2b5af2bf1972 Job ID 81
2019-01-31 20:52:00.308 1286-1308/com.inmobi.data.test D/WM-Processor: Processor stopping 59ee78d1-8a8b-4d66-8392-40b634553840
2019-01-31 20:52:00.309 1286-1308/com.inmobi.data.test D/WM-Processor: WorkerWrapper could not be found for 59ee78d1-8a8b-4d66-8392-40b634553840
2019-01-31 20:52:00.309 1286-1308/com.inmobi.data.test D/WM-StopWorkRunnable: StopWorkRunnable for 59ee78d1-8a8b-4d66-8392-40b634553840; Processor.stopWork = false

Я не уверен, что означает WorkerWrapper не может быть найден .Потому что он может планировать работу время от времени, но в большинстве случаев терпит неудачу.

Кроме причины, любой может указать любой обходной путь или исправить эту проблему.

Подробнее о проекте

  • Мин. Версия SDK: 17
  • Версия скомпилированного SDK: 28
  • Целевая версия SDK: 28
  • Версия WorkManager: 1.0.0-beta03
  • Устройство: Mi Max
  • УстройствоВерсия Android: 7.0

1 Ответ

0 голосов
/ 01 февраля 2019

Оказывается, проблема была не в работе менеджера.Проблема возникла из-за того, что на устройстве была включена функция экономии заряда батареи.Что не позволит никакой фоновой обработки, если приложение не на переднем плане.

...