【问题标题】:GcmNetworkManager OneoffTask ExecutionWindow needed?需要 GcmNetworkManager OneoffTask ExecutionWindow?
【发布时间】:2016-04-19 19:32:52
【问题描述】:

我开始实施GcmNetworkManager 以在用户恢复互联网连接时触发同步

在查看 OneoffTask 的文档时,它说 setExecutionWindow 是强制性的

用于创建一次性任务的强制设置器

但是我只希望它在用户有互联网时执行,听起来它可以在用户有互联网之前执行,但在windowStartDelaySecondswindowEndDelaySeconds 的窗口中。

这是否意味着网络管理员可以在windowEndDelaySeconds 之前的某个时间执行任务,或者这是否意味着一旦互联网恢复,它将在那个时间执行?

【问题讨论】:

  • setRequiredNetwork() 的文档说“如果指定的网络不可用,您的任务将在可用之前不会执行。”所以我认为它不会执行。我的问题是,如果他们直到windowEndDelaySeconds 之后才获得网络,任务还会执行吗?您总是可以将其设置为未来足够远的时间,这无关紧要,但我仍然有兴趣知道,因为我预计它可能不会执行。

标签: android google-cloud-messaging gcm-network-manager


【解决方案1】:

这意味着 CGM 将在注册后尝试windowStartDelaySecondswindowEndDelaySeconds 之间的某个时间点执行,同时考虑指定的网络状态。

例如,如果您使用.setExecutionWindow(30, 40).setRequiredNetwork(Task.NETWORK_STATE_CONNECTED),这意味着该任务将在注册后的某个时间点执行仅当您连接到网络。

所以是的,它可以在windowEndDelaySeconds 之前执行,但它也取决于网络状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-11
    • 1970-01-01
    • 2021-06-08
    相关资源
    最近更新 更多