26

我正在调查AFNetworking作为 的替代品ASIHTTPRequest,并注意到完全缺乏关于它是否支持后台下载/上传的信息。

对于一个ASIHTTPReqeust对象,您所要做的就是调用[request setShouldContinueWhenAppEntersBackground:YES],请求将在后台继续。对此有什么支持AFNetworking吗?

4

1 回答 1

48

编辑:从AFNetworking 1.0RC1 开始,这是一个明确的功能。AFURLConnectionOperation现在有了方法setShouldExecuteAsBackgroundTaskWithExpirationHandler:,它可以透明地为您管理所有这些。


这是一个隐含的功能,所以我并没有真正考虑过宣传它。您需要做的就是:


- (void)applicationWillResignActive:(UIApplication *)application {
    __block UIBackgroundTaskIdentifier backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^(void) {
        [application endBackgroundTask:backgroundTaskIdentifier];
        [[YourRestClient sharedClient] cancelAllHTTPOperations];
    }];
}

或者,如果您自己管理您的操作,请NSOperationQueue改为-cancelAllOperations此处。

于 2011-10-24T20:53:58.363 回答