Android 是否需要GcmNetworkManager OneoffTask执行窗口?

Android 是否需要GcmNetworkManager OneoffTask执行窗口?,android,google-cloud-messaging,gcm-network-manager,Android,Google Cloud Messaging,Gcm Network Manager,我开始实现GcmNetworkManager以在用户恢复internet连接时触发同步 当查看OneoffTask的文档时,它说这是强制性的 用于创建一次性任务的强制setter 但是,我只希望在用户有internet时执行此操作,听起来它可以在用户有internet之前执行,但在windowStartDelaySeconds和windowEndDelaySeconds窗口中执行 那么,这是否意味着网络管理器可以在windowEndDelaySeconds之前的某个时间执行任务,或者这是否意味着

我开始实现
GcmNetworkManager
以在用户恢复internet连接时触发同步

当查看OneoffTask的文档时,它说这是强制性的

用于创建一次性任务的强制setter

但是,我只希望在用户有internet时执行此操作,听起来它可以在用户有internet之前执行,但在
windowStartDelaySeconds
windowEndDelaySeconds
窗口中执行


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

这意味着CGM将尝试在
WindowStart DelaySeconds
之间的某个时间点执行任务
windowEndDelaySeconds
注册后,还要考虑指定的网络状态

例如,如果使用
.setExecutionWindow(30,40)
并使用
.setRequiredNetwork(Task.NETWORK\u STATE\u CONNECTED)
,这意味着只有当您连接到网络时,任务才会在注册后30到40秒之间的某个时间点执行


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

setRequiredNetwork()
的文档中说“如果指定的网络不可用,则在它可用之前,您的任务将不会执行。”因此我认为它不会执行。我的问题是,如果他们在
windowEndDelaySeconds
之后才进入网络,任务还会执行吗?你可以把它设定在一个足够长的时间内,在这个时间里它不会有什么影响,但我仍然有兴趣知道,因为我预计它可能不会执行。