3

我正在尝试找到一种在 android 中执行定期工作的最佳方法,该方法可以很好地与打盹模式和应用程序待机配合使用。我已经尝试使用定期请求的 WorkManager,它在开始时工作正常(15 分钟请求),但随着时间的流逝,时隙会减少,一周后它似乎每天只触发一次。

获得所需行为并且仍然保持打盹模式和应用待机友好的最佳方式是什么?

4

1 回答 1

3

在我们在问题评论中的对话之后,我有关于我的测试的更新。

我今天不得不停止它,但是从日期看,测试时间几乎是一周。我可以同意WorkManager& FCM没有高优先级)对我很有用。

我所做的是——不管PeriodicWorkRequest我注册的是什么,在收到的每一个 FCM 上,我都会OneTimeWorkRequest为在PeriodicWorkRequest

我的条件:

  • 目标SDK - 27
  • WorkManager版本 - 1.0.0alpha04
  • PeriodicWorkRequest, 15分钟。NetworkType.CONNECTED约束。
  • com.google.android.gms:play-services-gcm:11.8.0
  • 如果工作未运行,则每 1 小时发送一次推送(无高优先级)
  • 测试设备:Galaxy S8、Huwawei p20 lite、Galaxy S7、Pixel 2。(均运行奥利奥)
  • 安装后app被杀,测试时根本没有打开

行为因设备而异,但总体行为如下:

在最初的几天(例如 Galaxy S8 的 3 天),工作每约 15 分钟运行一次,其余几天每 1-5 小时运行一次。出于我的背景和电池效率工作的目的,它是完美的。而且它比没有你描述的推动的一天一次要好。

于 2018-07-08T08:56:57.233 回答