Геозона больше не перезапускает приложение из завершенного состояния в ios7?
Я разрабатываю приложение, которое использует ibeacon, чтобы определить, вошел ли пользователь в конкретный регион. Теперь я использую инфраструктуру CoreLocation для реализации этой функции на основе геозон. Я прочитал документ ниже. https://developer.apple.com/library/mac/documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html в котором Apple говорит, что: "В iOS регионы, которые вы регистрируете с помощью менеджера расположений, сохраняются между запусками вашего приложения. Если пересечение региона происходит, когда приложение iOS не запущено, система автоматически запускает его (или перезапускает) в фоновом режиме, чтобы оно могло обработать событие. При перезапуске все регионы, которые вы настроили ранее, сделан доступным в свойстве monitoredRegions любых созданных вами объектов менеджера местоположений. "
Я обнаружил, что это правда перед ios 7. Начиная с ios 7, приложение будет активировано из фона, но на самом деле оно больше не сможет быть перезапущено из завершенного состояния (выскользнуло из диспетчера задач, который отображается двойным - нажав кнопку домой). Если это связано с политикой Apple, почему Apple не обновляет приведенный выше официальный документ? Так что я думаю об ошибке в ios7, потому что приложение Reminder (встроенное приложение) также не перезапускается в ios7, хотя оно перезапускается в ios6. Это связано с политикой Apple? или ошибки в ios7? У меня уходит более 2 дней, чтобы найти решение. Есть идеи по этому вопросу?
2 ответа
Документация просто устарела. Это предполагаемое поведение в iOS7. Apple выпустила видео, в котором подробно обсуждается это изменение. Идея состоит в том, что если пользователь явно закрывает приложение, он не хочет, чтобы оно работало. Смотрите эту ветку.
Это такое большое дело? Как часто пользователи действительно будут это делать? Помните, что если пользователи раздражены вашим приложением, они также всегда могут удалить его. Это было правдой в iOS6.
iOS 7.1 отменила эту политику. То есть, даже если пользователь убивает ваше приложение, iOS все равно запускает ваше приложение после пересечения региона.