Есть ли у AFNetworking фоновая поддержка? - PullRequest
26 голосов
/ 18 октября 2011

Я нахожусь в процессе исследования AFNetworking в качестве замены ASIHTTPRequest и замечаю полное отсутствие информации о том, поддерживает ли он фоновые загрузки / выгрузки.

С объектом ASIHTTPReqeustвсе, что вам нужно сделать, это позвонить [request setShouldContinueWhenAppEntersBackground:YES], и запрос будет продолжен в фоновом режиме.Есть ли поддержка для этого в AFNetworking?

1 Ответ

48 голосов
/ 25 октября 2011

РЕДАКТИРОВАТЬ : Начиная с AFNetworking 1.0RC1 , это явная функция. AFURLConnectionOperation теперь имеет метод setShouldExecuteAsBackgroundTaskWithExpirationHandler:, который прозрачно управляет всем этим для вас.


Это неявная функция, поэтому я не задумывался о ее рекламе. Все, что вам нужно сделать, это:


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

Или, если вы управляете своими операциями самостоятельно NSOperationQueue, просто вместо этого -cancelAllOperations.

...