2014-01-14 4 views
1

Я разрабатываю приложение, которое использует ibeacon для определения того, введен ли пользователь в конкретный регион. Теперь я использую структуру CoreLocation для реализации этой функции, основанной на геопространстве. Я прочитал документ ниже. https://developer.apple.com/library/mac/documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html , в котором Apple заявляет, что: «В iOS регионы, которые вы регистрируете в менеджере местоположений, сохраняются между запусками вашего приложения. Если пересечение области происходит, когда приложение iOS не запущено, система автоматически разбудит его (или возобновляет его) в фоновом режиме, чтобы он мог обработать событие. При повторном запуске все регионы, которые вы настроили ранее, становятся доступными в свойстве monitoredRegions любых созданных вами объектов менеджера местоположений. »geofencing больше не перезапускает приложение из завершенного состояния в ios7?

Я обнаружил, что это true непосредственно перед ios 7. Из ios 7 приложение будет пробуждено из фона, но оно больше не может быть повторно запущено из завершенного состояния (удалено из диспетчера задач, которое отображается двойным щелчком по t он дома кнопку). Если это связано с политикой Apple, почему Apple не обновляет вышеуказанный официальный документ? Итак, я думаю об ошибке ios7, потому что приложение Reminder (встроенное приложение) также не перезапущено в ios7, даже если оно перезаписано в ios6. Является ли этот вопрос политикой Apple? или ошибки ios7? Для решения проблемы требуется более 2 дней. Любые идеи по этой проблеме?

ответ

1

Документация просто устарела. Это предполагаемое поведение в iOS7. Apple выпустила видео, в котором явно обсуждалось это изменение. Идея состоит в том, что если пользователь явно прекращает приложение, пользователь не хочет, чтобы он работал. See this thread.

Является ли это такой большой сделкой? Как часто пользователи действительно это делают? Помните, что если пользователи раздражают ваше приложение, они всегда могут его удалить. Это было верно в iOS6.

+0

Благодарим вас за ссылку. Возможно, я согласен с вами. –

0

iOS 7.1 отменил эту политику. Даже если пользователь убивает ваше приложение, iOS все еще запускает ваше приложение при пересечении региона.

+0

Я не вижу это на iOS 7.1.2 на iPhone 4S - если я убью приложение в коммутаторе задач, приложение не перезапущено, но если ОС убивает приложение из-за давления памяти, я вижу, что приложение перезагрузилось при входе в регион. – Greg