Правила многозадачности iOS


Правила многозадачности iOS

А теперь разработчики могут пользоваться поддержкой многозадачности на iPhone. Иначе говоря, при выходе из приложения, поступлении телефонного звонка или выбора музыки ваше приложение не завершает работу. Что это будет означать для приложения iBountyHunter?


У приложении тоже есть свой Жизненный цикл.


Использованный нами шаблон Core Data пытается сохранить данные при завершении работы приложения (загляните в applicationWillTerminate). Проблема в том, что в iOS 4 большинство устройств iOS поддерживает многозадачность, а жизненный цикл приложений изменился.


Из-за ограничений, обусловленных оборудованием мобильных устройств, приложения не работают в режиме полноценной многозадачности, как на настольных компьютерах. Вместо этого используется весьма специфический жизненный цикл, в ходе которого iOS запускает и останавливает приложение.


Руководство «iOS Application Programming» содержит превосходную документацию с описанием всех переходов между состояниями, соответствующих вызовов методов и оповещений. Впрочем, несколько особенно важных моментов стоит выделить особо.


Время перехода в фоновый режим ограничено.


Вам дается 5 секунд на то, чтобы вернуть управление из applicationDidEnterBackground; после этого iOS вмешается и приостановит приложение либо завершит его. При переходе в фоновый режим следует сохранить все измененные пользовательские данные. Желательно сохранить информацию о состоянии приложения, чтобы восстановить его при повторном запуске. Пользователь не должен знать, что выполнение приложения прерывалось между выходом и перезапуском.


При необходимости можно запросить дополнительное Время фонового режима.


В фоновом режиме возможности приложения ограничены, но если вам понадобится дополнительное время, можно запросить его в методе applicationDidEnterBackground:.


После Входа В фоновый режим Вы не получите оповещения о закрытии приложения.


После входа в фоновый режим iOS постарается держать приложение в памяти в приостановленном состоянии. Приостановленные приложения завершаются, если системе требуются ресурсы, снижение затрат памяти продлит жизнь приложения. При закрытии приложение не получает дополнительного оповещения; именно поэтому важно сохранять все необходимое для перезапуска сразу же после входа в фоновый режим.


Если устройство не поддерживает многозадачность, приложение будет завершено.


Если устройство не поддерживает многозадачность (iPhone 3G, например), или вы отказались от поддержки многозадачности, приложение просто завершается при выходе из него. Это поведение аналогично тому, которое использовалось до выхода iOS 4, и при закрытии приложения будет вызван метод applicationWillTerminate.


  • Дата: 3-01-2015, 23:03

Предыдущие статьи сайта:

Понравилась статья? Ставь лайки, рассказывай друзьям!



Отзывы о статье: Правила многозадачности iOS

Технологии, секреты и фишки Apple: Iphone, iPad, iPod