Изменение настроек местоположения с «Всегда» на «При использовании» не продолжает отслеживать местоположение в фоновом режиме.

Если пользователь меняет настройки своего местоположения

от «всегда» к «при использовании».

И не возвращается к приложению. Иногда я вижу синюю полосу, а иногда нет.

Если синяя полоса не отображается, мое приложение может быть удалено из памяти.

Единственное, что я делаю в своем методе didChangeAuthorization, это то, что если это не restricted, denied, .notDetermined, то я вызываю startUpdatingLocation().

Я знаю, что не могу сделать приложение startUpdatingLocation, пока оно находится в фоновом режиме.

Но разве я не могу продолжить это, когда я изменю его с «Всегда» на «При использовании»?! Это поведение, которое я не могу контролировать?


person Honey    schedule 01.10.2018    source источник
comment
В документе Apple говорится, что для продолжения работы службы определения местоположения необходимо включить фоновые обновления местоположения на вкладке «Возможности» вашего проекта Xcode. Пожалуйста, проверьте это.   -  person beshio    schedule 02.10.2018
comment
Я уже сделал это.   -  person Honey    schedule 02.10.2018
comment
Ладно, извините, что не помог...   -  person beshio    schedule 02.10.2018
comment
вы можете взглянуть на мой собственный ответ ...   -  person Honey    schedule 03.10.2018


Ответы (1)


После нескольких раундов тестирования. С большой уверенностью могу сказать:

Если вы переключитесь на Никогда, ОС вызовет stopUpdatingLocation через 10 секунд или меньше.

Так что, если до вы достигнете 10 секунд, вы переключитесь на «когда используется», вы увидите синюю полосу, и все в порядке.

Если вы подождете 10-20 секунд, вы больше не увидите синюю полосу, потому что вызывается stopUpdatingLocation. Чтобы возобновить отслеживание, вы должны перевести приложение на передний план, после чего оно снова начнет обновлять ваше местоположение.

Переключение между «Всегда» и «При использовании» никогда не должно приводить к остановке отслеживания вашего местоположения. Скорее всего, это произошло из-за того, что я переключился на «Никогда» и оставался там более 10 секунд, затем переключился на «Всегда», а затем на «когда в использовании», и я сделал все это, не открывая приложение, и подумал, что это потому, что я перешел с «Всегда» на «когда в использовании». использовать'. Так что это была несколько ложная тревога.

person Honey    schedule 02.10.2018