Я успешно включил фоновую обработку для своего приложения Core Location.Чтобы убедиться, что я на правильном пути, вот краткий обзор того, как я реализовал фоновый режим ENTERING:
1: info.plist: Добавлен ключ «Необходимые фоновые режимы» со значением «Регистры приложения для обновлений местоположения»"
2:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[self.locationManager stopUpdatingLocation];
[self.locationManager startMonitoringSignificantLocationChanges];
}
При выходе из фонового режима я сделал это с помощью этого кода:
- (void)applicationWillEnterForeground:(UIApplication *)application
{
self.locationManager.delegate = self;
[self.locationManager stopMonitoringSignificantLocationChanges];
[self.locationManager startUpdatingLocation];
}
Кажется, это работает хорошо, так как я получаю сообщения о местоположениипока мой айфон выключен.Буду признателен за любые советы относительно того, считается ли этот подход «наилучшей практикой».
Меня беспокоит то, что даже когда приложение закрывается на iPhone в явном виде, стрелка «Службы определения местоположения» все еще отображается в строке состояния.
У меня такой вопрос: возможно ли программно включить / отключить фоновую обработку приложения?
Моя причина в том, что если мой пользователь не хочет использовать часть моего приложения с информацией о местоположении, я бынравится предотвращать обработку приложения в фоновом режиме, даже если оно не получает местоположения.
Большое спасибо за любую информацию!
Спасибо за ваши быстрые ответы.Кажется, что происходит, что, хотя я запускаю
[self.locationManager stopMonitoringSignificantLocationChanges];
и
[self.locationManager stopUpdatingLocation];
, стрелка Служб определения местоположения в строке состояния остается включенной, даже когда мое приложение завершилось.Я также принудительно прервал его, но стрелка остается.
У меня также нет других приложений, которые работают как приостановленные.Я заглянул в «Настройки»> «Службы определения местоположения»> «MyApp» и увидел, что и myApp, и встроенное приложение «Карты» указывают, что они в настоящее время используют службы определения местоположения, однако ни один из них на самом деле не работает.
Кто-нибудь знает, почемуэто происходит?Может ли быть так, что я не освобождаю ресурсы должным образом, когда мое приложение либо переходит в фоновый режим, либо закрывается?
Все ответы очень ценятся.