iOS. Приемы программирования
Шрифт:
Обсуждение
Когда приложение работает в приоритетном режиме, можно получать от экземпляра CLLocationManager делегатные сообщения, информирующие вас о том, что iOS обнаружила перемещение устройства на новое место. Однако если приложение переходит в фоновый режим и становится неактивным, то делегатные сообщения не будут доставляться к нему в обычном порядке. В таком случае все делегатные сообщения поступят в программу одним пакетом, как только она снова перейдет в приоритетный режим.
Если для работы приложения вам необходима возможность получать информацию об изменении местоположения пользовательского
В этом приложении я собираюсь сохранить логическое значение в делегате приложения, которое будет называться executingInBackground. Когда приложение переходит в фоновый режим, задам этому делегату значение YES, а когда оно вернется в приоритетный режим — изменю данное значение на NO. Когда будут получены данные об изменении геолокационной информации от Core Location, мы проверим этот флаг. Если флаг установлен в YES, то мы не будем заниматься никакими энергоемкими вычислениями или любыми обновлениями пользовательского интерфейса, поскольку наше приложение сейчас работает в фоновом режиме. Мы, будучи ответственными программистами, не будем нагружать приложение никакими тяжелыми задачами. Но если программа действует в приоритетном режиме, то в нашем распоряжении вся вычислительная мощность устройства, которую мы можем бросить на обработку необходимых функций. Кроме того, попытаемся добиться максимальной точности при определении местоположения, если наша программа работает в приоритетном режиме. Когда же программа уходит в фоновый режим, эту точность можно смело снизить, чтобы уменьшить нагрузку на геолокационные сенсоры. Итак, определим делегат приложения:
Продолжим. Создадим диспетчер местоположения и запустим его сразу после запуска приложения:
Как
Кроме того, целесообразно было бы избежать любой интенсивной обработки в такой ситуации: приложение находится в фоновом режиме, и тут диспетчер местоположения получает обновление. Поэтому необходимо обработать метод locationManager: didUpdateToLocation: fromLocation: делегата нашего приложения следующим образом:
Враг Империи
Фантастика:
боевая фантастика
рейтинг книги
Ловите конский топот. Том 1. Исхода нет, есть только выходы...
15. Одиссей покидает Итаку
Фантастика:
альтернативная история
рейтинг книги
Американский доктор из России, или история успеха
Документальная литература:
биографии и мемуары
рейтинг книги
Все тайны Земли, которые ты должен узнать, прежде чем умрешь
Все тайны Земли
Научно-образовательная:
прочая научная литература
рейтинг книги
Невменяемый колдун
1. Невменяемый колдун
Фантастика:
фэнтези
рейтинг книги
1115 вопросов священнику
Религия и эзотерика:
православие
христианство
религия
прочая религиозная литература
рейтинг книги
Коллонтай. Валькирия и блудница революции
Человек-загадка
Документальная литература:
биографии и мемуары
научпоп
рейтинг книги
Капитал
Научно-образовательная:
философия
политика
рейтинг книги
МИФЫ. Великолепный МИФ (сборник)
Мифология
Фантастика:
юмористическое фэнтези
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 7
7. История Телепата
Фантастика:
аниме
фэнтези
попаданцы
альтернативная история
рейтинг книги
Избранное
Мастера современной прозы
Проза:
современная проза
рейтинг книги
Сумерки божков
1. Романы
Проза:
русская классическая проза
рейтинг книги
Библия Раджниша. Том 2. Книга 2
Религия и эзотерика:
самосовершенствование
эзотерика
рейтинг книги