我正在调查AFNetworking
作为 的替代品ASIHTTPRequest
,并注意到完全缺乏关于它是否支持后台下载/上传的信息。
对于一个ASIHTTPReqeust
对象,您所要做的就是调用[request setShouldContinueWhenAppEntersBackground:YES]
,请求将在后台继续。对此有什么支持AFNetworking
吗?
我正在调查AFNetworking
作为 的替代品ASIHTTPRequest
,并注意到完全缺乏关于它是否支持后台下载/上传的信息。
对于一个ASIHTTPReqeust
对象,您所要做的就是调用[request setShouldContinueWhenAppEntersBackground:YES]
,请求将在后台继续。对此有什么支持AFNetworking
吗?
编辑:从AFNetworking 1.0RC1 开始,这是一个明确的功能。AFURLConnectionOperation
现在有了方法setShouldExecuteAsBackgroundTaskWithExpirationHandler:
,它可以透明地为您管理所有这些。
这是一个隐含的功能,所以我并没有真正考虑过宣传它。您需要做的就是:
- (void)applicationWillResignActive:(UIApplication *)application {
__block UIBackgroundTaskIdentifier backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^(void) {
[application endBackgroundTask:backgroundTaskIdentifier];
[[YourRestClient sharedClient] cancelAllHTTPOperations];
}];
}
或者,如果您自己管理您的操作,请NSOperationQueue
改为-cancelAllOperations
此处。