1

我有一个应用程序,它使用定期和一次性工作人员来执行各种任务,其中一些需要网络连接。我的客户向我报告说,在他根本不使用该应用程序的那一天,他没有执行某项必需的日常任务。尽管应用程序在某一天没有运行,但工作人员仍然需要运行才能向后端服务器报告各种统计信息。我认为这是因为该应用程序一整天都处于应用程序待机模式,并且设备至少在一天中的部分时间处于打盹模式。所以我的问题是,是否可以在应用程序处于应用程序待机或打盹模式时让定期或一次性工作人员运行,还是会一直延迟到设备和/或应用程序唤醒?

或者,我是否会更好地使用警报而不是工人?我看到可以使用setExactAndAllowWhileIdle()“即使系统处于低功耗空闲模式也允许执行”来设置警报。“空闲模式”是否意味着打盹和/或应用程序待机模式?

我一直在努力解决这个问题,因此非常感谢任何帮助和/或指导。

4

1 回答 1

1

当工作的约束得到满足时,工作管理器是可推迟的后台工作。如果 WorkRequest 上设置的所有约束都得到满足,Work 仍然可以运行,但会有一些额外的延迟。这是因为 WorkManager 尊重 Android 电池优化策略。此外,您可以在此处阅读有关 WorkManager 约束的更多信息以了解工作的约束: https ://developer.android.com/reference/androidx/work/Constraints.Builder.html

于 2020-08-07T12:52:33.150 回答