Продолжение длительного процесса в фоновом режиме под iOS4 - PullRequest
0 голосов
/ 21 июня 2011

У меня есть очередь загрузки, запущенная с использованием запроса ASIHTTP.Когда пользователь нажимает на главный экран и приложение переходит в фоновый режим, я хотел бы продолжить эту операцию.Из документации я вижу, как я мог бы вызвать новую задачу для запуска на заднем плане, но не совсем понимаю, как я могу отметить уже запущенную задачу для продолжения.

1 Ответ

2 голосов
/ 21 июня 2011

этот пример заключен в скобки для совместимости до 4.0:

UIApplication *app = [UIApplication sharedApplication];
if ([app respondsToSelector:@selector(beginBackgroundTaskWithExpirationHandler:)]) {
    backgroundTaskIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        dispatch_async(dispatch_get_main_queue(), ^{
            if (backgroundTaskIdentifier != UIBackgroundTaskInvalid)
            {
                // you took too long - clean up what you can, then …
                [app endBackgroundTask:backgroundTaskIdentifier];
                backgroundTaskIdentifier = UIBackgroundTaskInvalid;
            }
        });
    }];
}

// start HTTP request …

когда вы завершите процесс, вы должны позвонить endBackgroundTask:, чтобы приложение узнало

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...