Работа в фоновом режиме
Помимо выполнения приложений в фоновом режиме, в системе iOS 4 имеется также возможность переводить приложение в состояние приостановки после того, как пользователь нажмет кнопку возврата в исходное состояние. Это состояние приостановки исполнения концептуально подобно переводу компьютера Macintosh в режим ожидания. Вся рабочая область памяти приложения сохраняется в оперативной памяти, но оно не выполняется в состоянии приостановки. В итоге возврат к такому приложению происходит практически мгновенно. Такой режим работы распространяется не только на специальные приложения, но, по существу, является стандартным для любого приложения, скомпилированного с помощью комплекта iOS 4 SDK, хотя он и может быть отменен другой установкой в файле Info.plist.
Для того чтобы проверить данный режим в действии, откройте на мобильном устройстве стандартное приложение Mail и перейдите к сообщению, а затем нажмите кнопку возврата в исходное состояние, откройте еще одно стандартное приложение Notes и выберите заметку. Затем постучите дважды по кнопке возврата в исходное состояние, чтобы сразу же вернуться к приложению Mail. При этом вы не обнаружите сколько-нибудь заметной задержки в переходе к первому приложению. Возврат к приложению Mail произойдет настолько естественно, как будто оно и не переставало работать все это время.
Подобного рода автоматическая приостановка и возобновление работы — практически все, что нужно для большинства приложений. Однако в некоторых случаях приложению, возможно, потребуется знать, когда именно его выполнение будет приостановлено и возобновлено. Система предоставляет средства, позволяющие уведомлять приложение о предстоящем переходе в состояние приостановки. Данной цели служат методы делегата и уведомления из класса UIApplication, применение которых будет рассмотрено далее в этой главе.
Когда система собирается перевести приложение в состояние приостановки, независимо от того, предназначено ли оно специально для работы в фоновом режиме или нет, оно может сделать следующее: запросить еще немного времени для выполнения в фоновом режиме. Это делается для того, чтобы у приложения было достаточно времени на закрытие любых открытых файлов, сетевых ресурсов и т.д. Ниже будет приведен характерный тому пример.
- Дата: 3-01-2015, 21:23