我正在使用工作管理器来安排独特的工作。虽然它在大多数手机上都能完美运行,但它无法安排在特定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);
从日志中,我可以在下面找到日志。
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
- 工作管理器版本:1.0.0-beta03
- 设备: 小米最大
- 设备安卓版本: 7.0
事实证明,问题不在于工作管理器。发生此问题是因为设备已打开节电模式。如果应用程序不在前台,则不允许任何后台处理。