EDIT: As of AFNetworking 1.0RC1, this is an explicit feature. AFURLConnectionOperation
now has the method setShouldExecuteAsBackgroundTaskWithExpirationHandler:
, which transparently manages all of this for you.
It's an implicit feature, so I didn't really think about advertising it. All you'd need to do is:
- (void)applicationWillResignActive:(UIApplication *)application {
__block UIBackgroundTaskIdentifier backgroundTaskIdentifier = [application beginBackgroundTaskWithExpirationHandler:^(void) {
[application endBackgroundTask:backgroundTaskIdentifier];
[[YourRestClient sharedClient] cancelAllHTTPOperations];
}];
}
Or, if you manage your operations in your own NSOperationQueue
, just -cancelAllOperations
here instead.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…