Это хороший вопрос.
Согласно документации Apple о многозадачности Apple:
В дополнение к предыдущим клавишам iOS предоставляет два других способа работы вСправочная информация:
Выполнение задачи - приложения могут запрашивать у системы дополнительное время для выполнения данной задачи. Локальные уведомления - приложения могут планировать доставку локальных уведомлений в заранее установленное время.
Если ваша задача не является длительной и непрерывной задачей, такой как служба VOIP, служба GPSили аудио сервис, вы можете объявить его как «задачу конечной длины», и вы можете выполнить эту задачу в фоновом режиме.Помните, что MU доступен только с iOS 4.0 и только для 3GS и 4 устройств.Вы также должны управлять этими задачами для других устройств, которые не поддерживают MU.
Всегда в соответствии с официальной документацией вы можете сделать это:
Вы можете использовать завершение задачи дляубедитесь, что важные, но потенциально длительные операции не заканчиваются внезапно, когда пользователь покидает приложение. Например, вы можете использовать эту технику для сохранения пользовательских данных на диск или завершения загрузки важного файла с сетевого сервера. Существует несколько шаблонов проектирования, которые можно использовать для запуска таких задач:
- Оберните любые длительные критические задачи вызовами
-[UIApplication beginBackgroundTaskWithExpirationHandler:]
и -[UIApplication endBackgroundTask:]
.Это защищает эти задачи в ситуациях, когда ваше приложение внезапно перемещается в фоновый режим. - Дождитесь вызова метода
applicationDidEnterBackground:
участника вашего приложения и затем запустите одну или несколько задач.