Есть ли у AFNetworking фоновая поддержка?

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

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

1 ответ

Решение

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


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


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

Или, если вы управляете своими операциями по-своему NSOperationQueue , просто -cancelAllOperations здесь вместо

Другие вопросы по тегам