Загрузка больших данных в режиме многозадачности? - PullRequest
1 голос
/ 09 февраля 2012

Я загружаю большие данные из ASynchronous NSURLConnection в одном отдельном viewcontroller.it, для загрузки data.it требуется 2 минуты. но когда я перехожу в фоновый режим через выход из приложения и снова открываюсь, появляется заставка и Приложение закрыто принудительно. Когда загружаются небольшие данные, он работает нормально в фоновом режиме в том же контроллере представления. Я использую следующий код после чтения конечной длины в Apple. но это не работает? любая помощь, пожалуйста?

 - (void)applicationDidEnterBackground:(UIApplication *)application
 {

    UIApplication  *app = [UIApplication sharedApplication];
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{ 
      [app endBackgroundTask:bgTask]; 
      bgTask = UIBackgroundTaskInvalid;
    }];

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{});

    [app endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid;

}

1 Ответ

5 голосов
/ 09 февраля 2012

Вам нужно выполнить некоторые работы (например, загрузку) в концепции многопоточности. Я думаю Это очень хороший учебник, в котором точно упоминается ваша проблема (она тоже решает :) Надеюсь, это поможет

РЕДАКТИРОВАТЬ: Apple говорит, что вы можете продолжить загрузку в фоновом режиме.

Фоновые задачи

Продолжение передачи по сети является очевидным

применение фоновых задач. Если пользователь начинает большой перевод а затем переключается из вашего приложения, оно может запустить фоновую задачу продолжить передачу. Если все пройдет хорошо, передача будет завершена прежде чем пользователь в следующий раз выводит приложение на передний план. При реализации поддержка фоновых задач в вашем приложении, вам не нужно иметь отдельную логику для «на заднем плане» и «в передний план "чехлы.

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