Отключение обновлений GPS при нажатии пользователем кнопки «Домой» на iPhone

#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