iOS中的后台获取

Posted

技术标签:

【中文标题】iOS中的后台获取【英文标题】:Background fetch in iOS 【发布时间】:2014-12-02 16:35:51 【问题描述】:

来自 android 开发,我们有运行良好的后台服务,这对我来说有点难以开始思考 Apple 的方式。 我们在 Android 中实现的是,我们的后台服务会定期更新我们的数据库,如果它们在前台或用户启动应用程序时,可以更新 UI。

ios 中的情况看起来有些不同,因为没有什么类似于后台服务。这是我的问题

即使我的应用程序被用户终止,我的后台提取是否也可以运行?我没有使用 HTTP 来下载内容,所以我不确定后台传输服务 API 是否会有所帮助。 是否可以在不同时间安排多个提取操作?

或者我是否必须完全重新考虑我的服务如何用于 iOS 开发? 任何想法将不胜感激。

【问题讨论】:

【参考方案1】:

如果您在 Google 上搜索“后台获取 iOS”,您会看到大量链接。底线,有效的 iOS 7,Apple 引入了后台获取(请参阅App Programming Guide for iOS: Background Execution 的 Fetching Small Amounts of Content Opportunistically 部分)。这是为了让应用能够定期检查是否有更多数据要下载。

iOS 7 还引入了NSURLSession 和后台NSURLSessionConfiguration,允许您发起一系列请求,即使在应用终止后仍会继续。

有关后台运营的总法律顾问,请参阅上述App Programming Guide。

【讨论】:

感谢您的链接,但我已经阅读了它们。我不明白的一件事是,即使我已经从应用切换器中终止了 gmail 和其他此类应用,它们如何获得更新? 可能是后台获取,在该文档中引用(它定期检查更新)或一些推送通知机制。

以上是关于iOS中的后台获取的主要内容,如果未能解决你的问题,请参考以下文章

应用程序未运行时的 iOS 7 后台获取

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

IOS Firebase 后台获取

ios - 如何在 ios swift 中正确实现后台获取

iOS7 后台获取

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