Уведомления о смене состояния
Для организации смены упомянутых выше состояний в классе uiApplicat ion определен ряд методов, которые может реализовать его делегат. Помимо методов делегата, в классе UIApplication определен также согласованный ряд имен уведомлений. Это дает возможность другим объектам, кроме делегата приложения, регистрировать уведомления при смене состояния приложения.
Следует, однако, иметь в виду, что перечисленные выше методы делегата и имена уведомлений непосредственно связаны с состояниями "выполнения": активным, неактивным и фоновым. Каждый метод делегата вызывается (и каждое уведомление посылается) только в одном из этих состояний. К числу самых важных переходов между состояниями относится переход из активного в другие состояния и обратно, а другие переходы, например из фонового в состояние приостановки, происходят без всяких уведомлений. Рассмотрим вкратце все эти методы и их основное назначение.
Первый метод, application:didFinishLaunchingWithOptions:, уже не раз упоминался на страницах этой книги. Его основное назначение — выполнять код на уровне приложения после запуска последнего.
flBacneflytomnxMeTOfla.applicationWillResignAct ive: HapplicationDidBecomeActive:, применяются в целом ряде случаев. Так, если пользователь нажмет кнопку возврата в исходное состояние, вызывается метод applicationWillResignActive:. А если пользователь в дальнейшем вернет приложение обратно в фоновое состояние, то будет вызван метод applicationDidBecomeActive:. Аналогичная последовательность событий происходит и в том случае, если пользователь получает телефонный звонок. В довершение всего, метод applicationDidBecomeActive: вызывается также при запуске приложения на выполнение! Как правило, эта пара методов заключает в себе все действия по переводу приложения из активного состояния в неактивное и служит удобным местом для активизации или отмены любой анимации, звука или других элементов в приложении, имеющих отношение к представлению приложения пользователю.
В связи с тем, что метод applicationDidBecomeActive: применяется в целом ряде ситуаций, может возникнуть потребность ввести код инициализации именно здесь, а не в методе application :didFinishLaunchingWithOptions:.
- Дата: 4-01-2015, 19:34