IOS7后台获取触发太迟了

时间:2014-05-15 09:00:08

标签: ios objective-c ios7 background fetch

我通过将最小背景间隔设置为:

来实现新的iOS7背景提取功能
 [[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum]

我还尝试了其他可能性,例如将间隔设置为1.0f 10.0f。 但无论我尝试什么,我的应用程序似乎触发了

 application:(UIApplication *)application performFetchWithCompletionHandler

方法,例如一小时一次或两小时一次,但对我来说没有意义,因为我希望每15分钟更新一次。我可以使用这些后台获取功能的唯一方法是从调试菜单中选择模拟后台获取选项,但这样只有开发构建才能使用后台获取 但是通过从“App Store”安装而使用它的人没有那个机会 我应该怎样做更频繁地调用“performFetch方法”(至少15分钟一次或类似的事情)? 谢谢。 -Tolga

1 个答案:

答案 0 :(得分:3)

在此引用Apple文档,


  

minimumBackgroundFetchInterval


可以启动另一次后台提取之前必须经过的最小秒数。 此值仅供参考,并不表示获取操作之间预期的确切时间。

操作系统决定应用程序的后台执行窗口,我们无能为力。因此,当应用程序获得插槽时,请执行您想要的任何服务呼叫30秒。

我读到的内容here

将后台提取设置为应用于应用的次数越多,将使用的资源就越多。 iOS通过对尝试经常使用API​​的应用程序施加限制来保护自身和设备,因此在设置自定义时间间隔时要小心。使用iOS提供的预定义值可能是最佳选择。