AFNetworking 2.0是否支持后台任务? - IOS 7

时间:2013-11-18 11:45:39

标签: ios objective-c ios7 afnetworking afnetworking-2

我正在使用Afnetworking 2.0库和NSURLSession。

我在AFURLSessionManager中发现他们使用默认会话配置Session,所以如果我需要在后台下载图像,那么我必须设置Session with Background configuration。

所以,我必须为此更改AFNetworking库,或者在AFNetworking 2.0中还有其他方法。

1 个答案:

答案 0 :(得分:3)

来自Using NSURLSession

  

NSURLSession类支持暂停应用时的后台传输。后台传输仅由使用后台会话配置对象创建的会话提供(通过调用backgroundSessionConfiguration:返回)。

如果要执行此操作,必须将AFHTTPSessionManager配置为使用后台会话配置:

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfiguration:@"com.myApp.backgroundDownloadSession"]
AFHTTPSessionManager *backgroundManager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:configuration];

AFNetworking将自己定位为代表。来自NSURLSession文档:

  

[T]代表将被保留,直到代表被发送URLSession:didBecomeInvalidWithError:消息

因此,只要本次会议确实如此,您的经理就会坚持到底。

两个旁注:

  1. 您应该使用单独的AFHTTPSessionManager 进行后台传输(大量下载等)。您不希望为所有请求分配后台URL会话

  2. 如果您想在没有AFNetworking的情况下检索响应,请记下后台会话标识符是什么(我的示例代码中的'com.myApp.backgroundDownloadSession'):

      

    新会话配置的标识符,对您的应用而言是唯一的。您的应用可以稍后通过创建具有相同标识符的新后台会话来检索下载或上传响应。