Обработка фонового состояния
Как упоминалось ранее, переход в фоновое состояние очень важен для обеспечения наилучшего взаимодействия с пользователем. Ведь в этом случае требуется отказаться от любых ресурсов, которые можно легко запросить повторно (или потерять, если приложение перестанет работать), а также сохранить информацию о текущем состоянии приложения, причем сделать это, не занимая текущий поток более пяти секунд.
Для того чтобы продемонстрировать некоторые виды подобного поведения, расширим возможности рассматриваемого здесь приложения State Lab несколькими способами. Сначала добавим изображение в отображаемое представление, чтобы в дальнейшем показать, каким образом можно избавиться от изображения, загруженного в оперативную память. В то же время затем покажем, как сохранить информацию о состоянии приложения, чтобы ее можно было легко восстановить впоследствии. И наконец, покажем, что все эти действия не должны занимать много времени в основном потоке, если поставить всю эту работу в очередь фоновых заданий.
Поместите в папку Resources своего проекта файл изображения smiley.png из архива проектов, прилагаемого к этой книге. Для этого перетащите данный файл из утилиты Finder непосредственно в папку Resources, находящуюся в окне текущего проекта Xcode, или щелкните правой кнопкой мыши на папке Resources и выберите команду Add1Existing Files из контекстного меню. В любом случае установите флажок в режим, предписывающий среде Xcode копировать файл в каталог текущего проекта.
Теперь введите переменные экземпляра и свойства как для самого изображения, так и для его представления в заголовочный файл State LabViewController .h, как показано ниже.
Скомпилируйте и запустите данное приложение на выполнение, чтобы увидеть на экране счастливо улыбающуюся рожицу над вращающимся текстом. Попробуйте сначала нажать кнопку возврата в исходное состояние, чтобы перевести данное приложение в фоновое состояние, а затем постучать пальцем по его пиктограмме, чтобы запустить его снова. Ничего не происходит, верно? Верно. Напомним, что нам нужно свести к минимуму количество ресурсов, используемых в данном приложении, когда оно находится в фоновом состоянии, поэтому желательно освободиться от изображения в оперативной памяти при переходе в фоновое состояние и восстановить его при возврате из этого состояния.
- Дата: 7-01-2015, 16:40