В моем приложении есть место (область) для просмотра. Когда устройство удаляется от этого места (оно может быть на расстоянии до 5 - 10 метров), появляется AlertView и воспроизводится звук. Когда приложение находится в фоновом режиме, создается локальное уведомление. Нажатие или перемещение уведомления приносит приложение на передний план. Это прекрасно работает. Однако при запуске в фоновом режиме местоположение обновляет стоппы через 15-16 минут или около того. Стрелка удаляется из строки состояния. При переносе приложения на передний план появляется AlertView и воспроизводится звук. Насколько я вижу, сервисы определения местоположения получают новое исправление в текущей позиции и отображается AlertView, потому что начальное расстояние больше, чем область, подлежащая наблюдению. Из-за небольших областей, которые будут наблюдаться, я думаю, что не мог использовать «значительные изменения» или «didExitRegion». Это правда?Почему службы определения местоположения не работают в качестве фоновой задачи?
Я установил тег в info.plist в «Регистры приложений для обновлений местоположения» в «требуемых фоновых режимах».
Есть ли кто-нибудь, кто имеет clou о том, что происходит? Должен ли я поместить некоторый код в - (void) applicationDidEnterBackground: (UIApplication *) application {}, и если да ... что это должно быть?
Спасибо заранее,
С уважением,
ADRI
Для точности нужно significantLocationChange не хватит , В вашем приложении: didFinishLaunchingWithOptions: метод вы проверяете ключ UIApplicationLaunchOptionsLocationKey? – onnoweb
@onnoweb Нет, это мой метод в appDelegate.m. - (BOOL) приложение: (приложение UIApplication *) didFinishLaunchingWithOptions: (NSDictionary *) launchOptions { self.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]]; // Переопределить точку для настройки после запуска приложения. self.viewController = [[ViewController alloc] initWithNibName: @ "ViewController" bundle: nil]; self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; возвращение ДА; } Пожалуйста, совет. – A3O
Вы должны проверить, содержит ли аргумент параметров этот метод UIApplicationLaunchOptionsLocationKey. Когда вы регистрируете уведомления о местоположении в своем файле Info.plist, iOS вызывает ваше приложение в фоновом режиме, используя этот метод с этим ключом в словаре опций. – onnoweb