ios7 - 当应用程序在 iOS 7 后台运行时将数据发送到服务器

标签 ios7 background-process data-transfer nsurlsession

我希望从在 iOS 7 后台运行的应用程序向我的服务器发送一些数据(位置坐标)。为此我使用 NSURLSessions。
我对为此目的应该使用的 session 类型感到困惑:
默认 session :我们可以在后台创建和使用默认 session 吗?如果是,它可以优雅地处理网络故障。
后台 session :我可以使用后台 session 将数据上传为 NSData 对象吗?

PS:在这两种情况下处理网络故障的一些代码将非常受欢迎。

最佳答案

我建议您使用后台 session 。

您可以使用 默认 session 或常规 NSURLConnection 以及最多 10 分钟的后台到期标识符来完成您的任务

后台任务标识 rune 档

https://developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/occ/instm/UIApplication/beginBackgroundTaskWithExpirationHandler :

在后台任务中使用 NSURLConnection(你也得到 iOS 6 支持)

NSURLConnection best practise when enter background

根据新标准,您可以使用 后台 session 来处理下载/服务器上传。

Apple 关于处理后台下载的文档

https://developer.apple.com/library/ios/documentation/cocoa/Conceptual/URLLoadingSystem/Articles/UsingNSURLSession.html#//apple_ref/doc/uid/TP40013509-SW1

来自 Apple 的一个简单项目,说明了该技术

https://developer.apple.com/library/ios/samplecode/SimpleBackgroundTransfer/Listings/SimpleBackgroundTransfer_APLViewController_m.html#//apple_ref/doc/uid/DTS40013416-SimpleBackgroundTransfer_APLViewController_m-DontLinkElementID_7

希望这对你有帮助!

关于ios7 - 当应用程序在 iOS 7 后台运行时将数据发送到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20858714/

相关文章:

ios - iOS7 中的 UIVisualEffectView

iphone - 使后台线程等待直到另一个后台线程在iphone中完成

java - 大量数据 - 发送它们的最佳方式是什么?

memory - 当 VRAM 已满时会发生什么?

iphone - iPhone 和 Mac 之间的临时 Wifi 连接 - 可能吗?

objective-c - iOS 7,未选择色调颜色?

ios - subview Controller 中的 topLayoutGuide

ios - SpriteKit传送带

android - Android 应用程序在不应该使用 CPU 的地方使用 CPU 的原因可能是什么?

ios - ionic 应用程序恢复和暂停