РЕДАКТИРОВАТЬ : Начиная с AFNetworking 1.0RC1 , это явная функция. AFURLConnectionOperation
теперь имеет метод setShouldExecuteAsBackgroundTaskWithExpirationHandler:
, который прозрачно управляет всем этим для вас.
Это неявная функция, поэтому я не задумывался о ее рекламе. Все, что вам нужно сделать, это:
- (void)applicationWillResignActive:(UIApplication *)application {
__block UIBackgroundTaskIdentifier backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^(void) {
[application endBackgroundTask:backgroundTaskIdentifier];
[[YourRestClient sharedClient] cancelAllHTTPOperations];
}];
}
Или, если вы управляете своими операциями самостоятельно NSOperationQueue
, просто вместо этого -cancelAllOperations
.