web-dev-qa-db-ja.com

AFNetworkingにはバックグラウンドサポートがありますか?

AFNetworkingの代わりにASIHTTPRequestを調査中ですが、バックグラウンドでのダウンロード/アップロードをサポートしているかどうかに関する情報が完全に不足していることに気付きました。

ASIHTTPReqeustオブジェクトを使用すると、[request setShouldContinueWhenAppEntersBackground:YES]を呼び出すだけで、リクエストはバックグラウンドで続行されます。 AFNetworkingでこれをサポートしていますか?

26
Andy Riordan

[〜#〜] edit [〜#〜]AFNetworking 1.0RC1 の時点で、これは明示的機能。 AFURLConnectionOperationにメソッドsetShouldExecuteAsBackgroundTaskWithExpirationHandler:が追加されました。このメソッドは、これらすべてを透過的に管理します。


これは暗黙の機能なので、宣伝することはあまり考えていませんでした。あなたがする必要があるのは:


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

または、独自のNSOperationQueueで操作を管理する場合は、代わりにここで-cancelAllOperationsだけです。

48
mattt