NSURLC подключение и многозадачность в iOS

Я использую NSURLConnection загружать ресурсы асинхронно в iOS. (Это большие PDF-файлы, поэтому при медленном соединении требуется некоторое время.)

Сейчас я обновляю свое приложение с iOS 3 на iOS 4. Так как мое приложение не связано с локацией, voip и фоновой музыкой, я думаю, мне нужно что-то сделать.

Мой вопрос, то, что происходит с NSURLConnection в настоящее время работает? Это приложение приостановлено и волшебным образом возобновлено, когда приложение возвращается на передний план, или оно полностью убито? Если это последнее, какова стандартная стратегия, чтобы возобновить его автоматически позже? Есть подкласс с открытым исходным кодом NSURLConnection который автоматически это делает?

2 ответа

NSURLConnection действительно приостанавливается и запускается снова, когда приложение выходит на передний план. Просто убедитесь, что вы прервали соединение, если приложение переходит из приостановленного состояния в неработающее:

- (void)applicationWillTerminate:(UIApplication *)application {
    if (self.downloadConnection != nil){
        [self.downloadConnection cancel];
    }
}

Вы можете запустить задачу, которая будет выполняться не более 10 минут. Посмотрите на использование beginBackgroundTaskWithExpirationHandler: API для этого. Просто знайте, что если ваша задача займет слишком много времени, она будет убита ОС.

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