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 для этого. Просто знайте, что если ваша задача займет слишком много времени, она будет убита ОС.