Книга: iOS. Приемы программирования
14.0. Введение
14.0. Введение
Многозадачность — это способ работы, обеспечивающий фоновое выполнение. Иначе говоря, приложение может работать как обычно — выполнять задачи, порождать новые потоки, слушать уведомления, реагировать на события, — но просто ничего не отображать на экране и не взаимодействовать с пользователем каким-либо образом. Когда пользователь нажимает на устройстве кнопку Home (Домой) — в более ранних версиях iPhone и iPad эта кнопка завершала работу приложения, — программа просто переходит в фоновый режим.
Когда ваше приложение переходит в фоновый режим (например, при нажатии кнопки Home (Домой)), а затем возвращается на передний план (когда пользователь вновь выбирает это приложение), система начинает посылать различные сообщения. Ожидается, что эти сообщения будут получены объектом, который мы назначаем делегатом нашего приложения. Например, когда приложение переходит в фоновый режим, делегат приложения получит метод applicationDidEnterBackground:. Аналогично, когда пользователь вновь вернет приложение в приоритетный режим, то есть возобновит с ним работу, делегат приложения получит делегатное сообщение applicationWillEnterForeground:.
Кроме этих сообщений делегатов iOS также посылает работающему приложению уведомления, когда переводит эту программу в фоновый режим или возвращает обратно в приоритетный режим. При переходе приложения в фоновый режим посылается уведомление UIApplicationDidEnterBackgroundNotification, а при переходе из фонового режима в приоритетный — уведомление UIApplicationWillEnterForegroundNotification. Для регистрации этих уведомлений можно использовать центр уведомлений, задаваемый по умолчанию.
- 14.0. Введение
- 14.1. Обнаружение доступности многозадачности
- 14.2. Выполнение долгосрочной задачи в фоновом режиме
- 14.3. Добавление возможностей фонового обновления в приложения
- 14.4. Воспроизведение аудио в фоновом режиме
- 14.5. Обработка геолокационных изменений в фоновом режиме
- 14.6. Сохранение и загрузка состояния приложений iOS, использующих многозадачность
- 14.7. Управление сетевыми соединениями в фоновом режиме
- 14.8. Отказ от многозадачности