Переход из активного состояния в неактивное


Переход из активного состояния в неактивное

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


Нажмите кнопку Close в предупреждающем диалоговом окне, и на консоль будет выведена строка сообщения.

Теперь посмотрим, что произойдет, если поступить иначе, ответить на полученное сообщение SMS. Попросите кого-нибудь прислать вам сообщение SMS, чтобы на консоль была выведена строка сообщения.


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


Практическое применение смены состояний исполнения.

Какую же пользу можно извлечь из всего изложенного выше? Основываясь на рассмотренном выше примере, мы можем выработать ясную стратегию, чтобы придерживаться ее в дальнейшем, когда придется иметь дело с изменениями состояния.


Пользуйтесь методом applicationWillResignActive: и уведомлением UIApplication WillResignActiveNotilication для приостановки отображения своего приложения. Если ваше приложение является игровым, значит, в нем уже должна быть предусмотрена возможность приостанавливать каким-то образом ход игры. В то же время что касается других разновидностей приложений, то они не должны предъявлять жестких по времени требований на получение вводимых пользователем данных, поскольку ваше приложение не сможет получать эти данные в течение некоторого времени.


Пользуйтесь методом appiicationDidEnterBackground: и уведомлением UIApplication DidEnterBackgroundNotification для освобождения любых ресурсов, которые необязательно сохранять, когда приложение находится в фоновом состоянии (например, кэшируемые изображения или другие легко перезагружаемые данные), либо тех ресурсов, которые все равно не уцелеют в фоновом режиме работы, в том чисде сетевые соединения.


  • Дата: 6-01-2015, 00:03

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

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



Отзывы о статье: Переход из активного состояния в неактивное

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