0

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

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

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

4

2 回答 2

0

启用此模式并不能保证系统会给您的应用程序提供任何时间来执行后台提取。系统必须平衡您的应用程序获取内容的需求与其他应用程序和系统本身的需求。在评估了这些信息后,系统会在有好的机会时为应用程序留出时间。

另请确认您使用的是 NSURLSession

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

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

于 2017-02-09T10:32:57.647 回答
0

结果如下:我打开了数据保护,需要先解锁 iPhone,然后才能读取我的网络凭据。

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

后台提取工作的两部 iPhone 偶尔启用了密码保护,而一直工作的 iPhone 禁用了密码保护。

我希望这对其他人有所帮助。这是一篇很好的文章,讨论了我的问题,这是我自己痛苦地整理出来后发现的。

于 2017-02-09T22:25:33.687 回答