无法在WorkManager上安排唯一的工作

时间:2019-01-31 15:38:20

标签: android job-scheduling android-architecture-components android-jetpack android-workmanager

我正在使用工作经理来安排独特的工作。虽然它可以在大多数手机上完美运行,但无法在特定的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 :(得分:0)

原来问题不是工作经理引起的。发生此问题是因为设备打开了省电模式。如果应用程序不在前台,则不允许任何后台处理。