Приложение iOS перезапускается автоматически, когда пользователь выключает и включает службы определения местоположения в настройках iPhone.

Я использую службы определения местоположения в своем приложении для iOS, они включают SignificantLocationChanges и Region monitoring.

Я узнаю причину перезапуска приложения, используя «UIApplicationLaunchOptionsLocationKey» в AppDelegate.

Считайте, что приложение закрыто. В этом случае, когда пользователь выключает и включает службы определения местоположения в настройках iPhone, как показано на рисунке ниже, мое приложение запускается повторно.

введите описание изображения здесь______________  введите описание изображения здесь

Это ожидаемое поведение приложений iOS, зарегистрированных с SingnificantLocationChange & RegionMonitoring, или какая-то ошибка, которую я делаю.

Спасибо.


person Ashok    schedule 26.02.2015    source источник
comment
Не проверяли такое поведение с другими приложениями, но, как правило, этого не должно быть.Можете ли вы проверить с помощью нескольких других приложений для аналогичного случая также, почему вы используете UIApplicationLaunchOptionsLocationKey этот ключ для какой-либо специальной цели, например, вы вызываете некоторые службы и т. Д.   -  person NSDumb    schedule 26.02.2015
comment
Я использую «UIApplicationLaunchOptionsLocationKey», чтобы определить, перезапускает ли система приложение из-за новых событий местоположения или пользователь обычно открывает приложение.   -  person Ashok    schedule 26.02.2015
comment
Хорошо, вы пытались отключить LaunchOptionsLocationKey и повторить попытку? Это может быть связано с тем ключом, который вы используете, и если это актуальная проблема, я считаю, что вам нужно использовать альтернативный способ сделать это.   -  person NSDumb    schedule 26.02.2015
comment
Мы не можем ничего изменить в UIApplicationLaunchOptionsLocationKey. Это просто для определения, есть ли перезапуск приложения из-за новых событий местоположения, когда мы используем SignificantLocationChange или мониторинг региона. Это просто условие if, например if ([launchOptions objectForKey: @UIApplicationLaunchOptionsLocationKey]) в методе application: didFinishLaunchingWithOptions в AppDelegate. Проверьте URL-адрес ниже, чтобы узнать больше об UIApplicationLaunchOptionsLocationKey. community.estimote.com/hc/en-us/articles/   -  person Ashok    schedule 26.02.2015


Ответы (1)


Это ожидаемое поведение iOS. Всякий раз, когда настройки конфиденциальности для приложения изменяются, ОС отправляет SIGKILL, что не является сбоем.

Вы можете найти официальную документацию по этой ссылке: http://developer.apple.com/devcenter/download.action?path=/wwdc_2012/wwdc_2012_session_pdfs/session_710__privacy_support_in_ios_and_os_x.pdf

person atulkhatri    schedule 26.02.2015
comment
Спасибо. Итак, в этом случае iOS разбудит приложение (даже если оно прервано), если пользователь выключит и включит службы определения местоположения в настройках iPhone ?. Ясно ли это упомянуто в каких-либо официальных документах ?. - person Ashok; 27.02.2015