【发布时间】:2014-10-19 18:15:19
【问题描述】:
我在使用 AFURLSessionManager 实现后台任务时遇到问题。
我正在创建一个带有 BaseURL 和 SessionConfiguration 的新 AFHTTPSessionManager,使用 NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier: 并使用便捷的方法创建一个 POST 请求。
当我运行我的应用程序时,第一个请求正常发送,但第二个请求返回 A background URLSession with identifier {ID} already exists! 并导致应用程序崩溃。
我看过 Apple 的 WWDC 2013 视频,他们建议您只创建一次会话配置,使用
dispatch_once(&onceToken, ^{
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfiguration:@"com.yourcompany.appId.BackgroundSession"];
session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
});
但是,AFURLSessionManager 的 session 属性设置为只读,我无法传递自定义 NSURLSession,只有一个 NSURLSessionConfiguration,它是在 AFURLSessionManager:init 内部创建的:
self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration delegate:self delegateQueue:self.operationQueue];
我觉得我做错了什么,但我还能如何使用 AFNetworking 支持后台任务?
【问题讨论】:
标签: ios afnetworking afnetworking-2