#iphone #core-location
#iPhone #основное местоположение
Вопрос:
У меня есть приложение с четырьмя вкладками. На двух вкладках используются обновления местоположения, а на двух других GPS не требуется. Я использую следующий код, чтобы отключить обновления местоположения, когда представление вот-вот исчезнет
- (недействительный)viewWillDisappear:(BOOL)анимированный { [self.LocationManager stopUpdatingLocation]; }
Кажется, это работает, когда я меняю вкладки. Проблема в том, что когда пользователь нажимает кнопку «Домой», находясь на вкладках, которые не требуют информации о местоположении, GPS отключается. Однако, если пользователь нажимает кнопку «Домой», находясь на одной из вкладок, использующих обновления местоположения, GPS остается включенным. Я думаю, это потому, что «viewWillDisappear» никогда не вызывается, когда пользователь нажимает кнопку «Домой».. Прав ли я в этом предположении, есть какие-либо предложения о том, как устранить эту проблему.
Soofi
Ответ №1:
Добавьте ключ «UIBackgroundModes» в свой -Info.plist, но не указывайте никаких значений, которые должны гарантировать, что службы определения местоположения не будут использоваться в фоновом режиме.
Комментарии:
1. ЛАДНО, Джей Си, ты мужик… Отключение режимов UIBackgroundModes устранило проблему. Я прочитал несколько документов Apple и не уловил этого.
2. Рад, что это сработало 🙂 Не забудьте отметить как ответ, если решение сработало.
Ответ №2:
ну, если только вы специально создали приложение для фоновых служб для GPS, это не работает, и я предполагаю, что вы еще не сделали этого, иначе ты бы не спрашивала, как остановить его…впрочем, для полноты картины, только в случае, если вы действительно хотите этого, я думаю, вы хотите, чтобы метод applicationDidEnterBackground
Комментарии:
1. RW .. Вы правы, я не настраивал никаких конкретных фоновых служб. Интересный момент, однако, причина, по которой я думаю, что GPS включен, заключается в том, что символ GPS остается видимым в верхней строке состояния, даже когда приложение выключено. Я ждал целых пять минут, пока это пройдет, но этого не произошло.
2. возможно, добавьте
NSLog(@"got GPS data");
в свой метод didUpdateLocation и посмотрите, действительно ли что-нибудь появляется в консоли после нажатия кнопки home