Theorically, у вас есть 5 секунд, чтобы закрыть задачи, которые требуется сделайте в фоновом режиме, если вы этого не сделаете, ваше приложение может быть убито.
После этого вы можете позвонить «beginBackgroundTaskWithExpirationHandler», и вам нужно быть готовым на всякий случай, если «небольшое дополнительное время», которое дает Apple, недостаточно для задач, которые вам нужно закончить.
EDIT:
When an iOS application goes to the background, are lengthy tasks paused?:
Из Руководства по программированию IOS App:
Your app delegate’s applicationDidEnterBackground: method has approximately 5 seconds to finish any tasks and return. In practice, this method should return as quickly as possible. If the method does not return before time runs out, your app is killed and purged from memory. If you still need more time to perform tasks, call the beginBackgroundTaskWithExpirationHandler: method to request background execution time and then start any long-running tasks in a secondary thread. Regardless of whether you start any background tasks, the applicationDidEnterBackground: method must still exit within 5 seconds.
От Raywenderlich: «Опять же, нет никаких гарантий и документации API даже не дают номер шара - поэтому не полагайтесь на это число. Вы можете получить 5 минут или 5 секунд, так что ваше приложение должно быть готовым ко всему »:
http://www.raywenderlich.com/29948/backgrounding-for-ios
Сколько времени вы получите после того, как ваше приложение получает фоновый определяется прошивкой. В то время, когда вы были предоставлены, никаких гарантий нет, но вы всегда можете проверить свойство backgroundTimeRemaining для UIApplication. Это скажет вам, сколько времени у вас осталось. Общий, основанный на наблюдениях консенсус заключается в том, что обычно вы получаете 10 минут. Опять же, нет никаких гарантий, и документация API даже не дает номер шара - поэтому не полагайтесь на это число. Вы можете получить 5 минут или 5 секунд, поэтому ваше приложение должно быть готово ко всему!
Если вы передаете данные, лучшим вариантом будет использование 'NSURLSession', как описано в руководстве по программированию iOS. – Paulw11
Я не загружаю данные, а загружаю некоторые изображения с помощью' parse'. Я не уверен, что NSURLSession является наиболее эффективным подходом – donkey