我正在开发一个应用程序,需要大约每 60 分钟获取一次数据,我认为后台获取非常适合。我开发了一个应用程序,当在 xCode 中运行时,我模拟后台提取按预期工作,但在设备上运行时似乎不起作用。我还下载了几个演示应用程序,所有这些应用程序都可以在模拟器中运行,但不能在设备上运行,我正在增加角标(Badge)计数。
这个问题与后台获取的概念更相关,它适合我的需要吗?
- 后台提取在后台和屏幕锁定时是否有效?
- 当应用程序位于前台时,后台获取不起作用,这是正确的吗?如果是,我将实现 NSTimer。当在前台但设备锁定屏幕时会发生什么?
- 后台根据应用程序使用情况调整其更新周期,最初我将 setMinimumBackgroundFetchInterval 设置为 60,但即使设置为 5,后台提取也不会在设备上运行
- 应用程序设置正确,并显示已启用/允许后台提取。
最佳答案
只要屏幕锁定,您的应用程序就会进入后台状态(即使应用程序位于前台)。每当调用 *- (void)applicationDidEnterBackground:(UIApplication )application 时,都有可能发生后台获取,具体取决于操作系统的空闲程度。获取间隔并不总是准确的。在间隔的第 60 分钟内,如果操作系统不空闲,则不会进行提取。确保您的应用位于设备后台,并使用 UIApplicationBackgroundFetchIntervalMinimum 而不是指定 60 分钟的间隔。获取更有可能发生。
关于ios - 背景获取 - 概念/理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25108745/