DidEnterBackground - продолжайте ждать ASIHTTP-запроса и результата анализа - PullRequest
1 голос
/ 29 апреля 2011

Может быть, вы могли бы помочь мне найти подходящий способ справиться с этим:

  1. У меня есть NSTimer (запущенный в AppDelegate), который запускает класс для запуска асинхронного запроса к серверу (я использую ASIFormDataRequest)
  2. Когда получен HTTP-JSON-ответ, я анализирую его с помощью TouchJSON
  3. Затем я зацикливаю полученный NSDictionary для заполнения выделенного NSManagedObjectContext
  4. Затем я сохраняю этот контекст при некоторых взаимодействиях с пользователем

Иногда отправляется HTTP-запрос, и пользователь покидает приложение. Я хочу получить дополнительное время для выполнения заданий со 2 по 4 в фоновом режиме.

Я читал документацию Apple, но все еще не ясно, как получить дополнительное время для уже запущенного асинхронного действия?

Короче, как мне использовать beginBackgroundTaskWithExpirationHandler?

Спасибо за вашу очень полезную помощь.

Kheraud

1 Ответ

2 голосов
/ 29 апреля 2011

ASIHTTPRequest поддерживает выполнение запросов в фоновом режиме:

[request setShouldContinueWhenAppEntersBackground:YES];

Если вы выполняете шаги 2-4 внутри уведомлений делегата и устанавливаете флаг выше, то это должно делать то, что вы хотите.

Вы не сможете взаимодействовать с пользователем после того, как ваше приложение войдет в фоновый режим.

...