后台获取不适用于所有设备

时间:2017-02-09 10:22:39

标签: ios background-fetch

在从未用于开发的测试设备中, iOS背景Fetch工作正常,在夜间继续。

但是在用于开发的其他两个设备上,有时会发生提取,但通常不会,甚至在夜间也不会。

有没有人经历过相同的奇怪行为?只有在有Wi-Fi可用的情况下才会进行提取,或者是否有其他因素可能会影响提取行为?

2 个答案:

答案 0 :(得分:0)

  

启用此模式并不能保证系统会为您提供此模式   app随时执行后台提取。系统必须平衡   您的应用需要根据其他应用的需求获取内容   系统本身。在评估该信息后,系统会给出时间   在有良好机会的情况下访问应用程序。

另请确认您使用的是NSURLSession

  

下载任何内容时,建议您使用   NSURLSession类用于启动和管理您的下载。对于   有关如何使用此类来管理上载和下载的信息   任务,请参阅URL会话编程指南。

https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

答案 1 :(得分:0)

原来如下:我打开了数据保护功能,要求在我的网络凭据被读取之前解锁iPhone。

在进行后台提取之前,我通过检查这些凭据来检查应用是否已登录。此检查失败,因为钥匙串已被锁定。

背景提取只能偶尔使用的两个iPhone启用了密码保护,而它一直工作的iPhone已禁用密码保护。

我希望这有助于其他人。 Here's一篇很好的文章,讨论我的问题,这是我在自己痛苦地整理出来后发现的。