Исследование состояний исполнения


Исследование состояний исполнения

Однако, делая это в методе applicationWillResignActive:, не следует думать, что приложение находится на грани перехода в фоновое состояние, поскольку подобная смена состояния может оказаться временной, а в конечном итоге — привести в активное состояние.


Далее следуют еще два метода, applicationDidEnterBackground: и GapplicationWill EnterForeground:, имеющих несколько иную область применения: они предназначены для работы с приложениями, которые определенно переводятся в фоновое состояние. При вызове метода applicationDidEnterBackground: приложение должно освободить все ресурсы, которые могут быть восстановлены в дальнейшем, сохранить все данные пользователя, разорвать сетевые соединения и т.д. Именно здесь можно также сделать запрос дополнительного времени на выполнение в фоновом режиме, если в этом возникнет потребность, как будет показано ниже. Однако если потратить слишком много времени на выполнение операций в методе applicationDidEnterBackground: — более пяти секунд, система посчитает, что приложение ведет себя неверно и завершит его принудительно. Для восстановления того, что было нарушено в методе applicationDidEnterBackground:, например перезагрузка данных пользователя, повторное установление соединения и так далее, следует реализовать метод applicationWillEnterForeground:.


Следует также иметь в виду, что при вызове метода applicationDidEnterBackground: можно без всякого риска предположить, что недавно вызывался и метод applicationWill ResignActive-. ,noflo6HOTOMy, KaKnpnBbi30BeMeTOflaapplicationWillEnterForeground: вполне допустимо предположить, что вскоре будет вызван метод applicationDidBecomeActive:.


Последний из рассматриваемых здесь методов, applicationWillTerminate:, применяется крайне редко, если вообще используется. До появления версии iOS 4 этот метод обычно приходилось реализовывать для сохранения данных пользователя и прочих операций, но теперь, когда имеется метод appl icat ionDidEnterBackground:, этот устаревший метод уже не нужен. На самом деле он вызывается лишь в том случае, если приложение уже находится в фоновом состоянии и система решает отказаться по той или иной причине от приостановки его выполнения и просто завершает приложение.


Вот, собственно, и все теоретические основы, которые следует знать о состояниях и переходах приложения между ними. Теперь попробуем применить эти теоретические знания на практике, построив приложение, которое просто записывает сообщение в журнал консольных сообщений среды Xcode всякий раз, когда вызывается один из рассмотренных выше методов. Затем мы попробуем манипулировать выполняющимся приложением самыми разными способами подобно тому, как это мог бы сделать пользователь, чтобы проверить, к переходам в какие именно состояния это приведет.


  • Дата: 4-01-2015, 23:04

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

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



Отзывы о статье: Исследование состояний исполнения

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