在 iOS 中,后台提取多久执行一次?

Posted

技术标签:

【中文标题】在 iOS 中,后台提取多久执行一次?【英文标题】:How often is background fetch executed in iOS? 【发布时间】:2015-03-19 14:59:41 【问题描述】:

ios 7 中,当应用不在最前端时,应用支持后台获取模式来获取数据:

在方便时,系统会在后台启动或恢复应用,并给它一点时间来下载任何新内容。

我的问题是:后台获取代码的执行频率是多少?

如果我设置最小间隔:

[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:10];

它是每 10 秒执行一次,还是每天执行一次?一般来说,我应该期待什么样的间隔?

【问题讨论】:

【参考方案1】:

您无法知道频率,这取决于用户使用模式、设备电池以及 Apple 在其算法中的其他任何内容...

minimumBackgroundFetchInterval 可用于指定您的应用不需要如此频繁地运行 fetch,它不会使 fetch 发生得更频繁。您还可以在 UIApplicationBackgroundFetchIntervalMinimum 中设置可能的最小值,如果您希望后台提取尽可能频繁地运行(但仍不能保证它实际运行的频率),您可以使用该值。

【讨论】:

我明白了。我只是想知道是否有人知道普通应用程序的大致频率。假设用户每天启动一次此应用,并且电池电量不低,那么我预计多久会发生一次提取? 我不认为这里有任何一般频率(但如果有人知道更多请纠正我)。如果我理解正确,如果用户定期使用该应用程序,它可能会更频繁地发生。应用程序通常在执行后台获取时的速度和效率以及成功获取新数据的频率可能也很重要(有一个参数用于在完成后告诉 iOS 获取结果)。

以上是关于在 iOS 中,后台提取多久执行一次?的主要内容,如果未能解决你的问题,请参考以下文章

对于iOS 9 +,后台Fetch在Xamarin.ios上运行一次

提示询问用户是不是要继续让您的应用收集后台位置 - 这种情况多久发生一次?

iOS核心数据在后台获取导致崩溃

使用循环运行后台获取时出现 NSInternalInconsistencyException

ios 8后台获取永远不会在设备上多次调用

在同一个视图中在 Core Data 中执行多次提取