CONNECTED的约束是否破坏了WorkManager?

时间:2019-06-18 00:18:33

标签: android-workmanager

看来,在NetworkType.CONNECTED中安排周期性任务时使用WorkManager约束对我来说并不可靠。

一种复制方式...

安装了该应用程序的Android设备已连接到WiFi接入点。使用可丢弃数据包的MAC过滤器阻止到设备的流量。如预期的那样,设备上的网络调用开始失败,WM对其进行处理。接下来,禁用MAC过滤器以阻止流量恢复对设备的访问。人们期望任务能够恢复,但它们永远不会恢复。其他网络调用可以正常工作,但是具有网络约束的WM任务直到应用重新启动(被杀死/再次运行)后才可以运行

温度。解决方案:在WorkManager中安排任务时,放弃NetworkType.CONNECTED的约束可以解决问题,但是即使网络中断,唤醒设备并不必要地消耗电池,您当然也会提出请求。

  • 编译SDK版本28
  • Android 5.1.1

如果有更好的解决方法,请分享。

更新:另一个关键是要确保任何定期作业始终返回ListenableWorker.Result#success()

0 个答案:

没有答案