Я работал и тестировал фоновые обновления местоположения, используя GoogleApiClient
для обновлений на основе интервала и смещения. При тестировании и анализе в течение нескольких дней я обнаружил некоторые изменения в выводе, которых я не ожидал.
При использовании
setInterval
иsetFastestInterval
для обновлений на основе интервала, скажем, я установил Интервал как 15 минут и Самый быстрый интервал как 10 минут< /em>, в 90% случаев я получаю обновления с ожидаемым интервалом (от 10 до 15 минут). Но иногда я замечал, что обновления занимают гораздо больше времени, чем указанный интервал, например, разница составляет около 30 минут и 60 минут. Любая идея о том, почему разница?При использовании
setMinimumDisplacement
для обновлений на основе расстояния, скажем, я установил Смещение как 200 метров, я получаю обновления только для стационарных точек (Во время путешествия он не дает обновлений, даже если он превышает 200 метров), которые составляют 200 метров и выше. Это так нормально работает?
Я использую запросы местоположения типа PendingIntent
, чтобы получать обновления местоположения в BroadcastReceiver
для обновлений местоположения в фоновом режиме.
fusedLocationProviderClient.requestLocationUpdates(locationRequest, pendingIntent);
Во время тестирования Службы определения местоположения были ВКЛЮЧЕНЫ, а Режим определения местоположения был HIGH_ACCURACY.
FusedLocationApi
, вы можете использовать старый LocationManager, чтобы получить больше контроля для себя. здесь есть информация о том, как это сделать. - person Gary99   schedule 18.01.2018LocationListener
, потому что он будет завершен, когда приложение будет закрыто. Я хочу получать обновления местоположения, даже если приложение закрыто, поэтому я выбралPendingIntent
версиюrequestLocationUpdates
FusedLocationProviderClient
. Обновления, которые я получаю отsetInterval
, намного лучше, чемsetMinimumDisplacement
, поскольку местоположения из setInterval более точны по сравнению с setMinimumDisplacement. - person Joshua   schedule 19.01.2018setMinimumDisplacement
даже близко не приблизителен. Я объяснил это во втором пункте вопроса. - person Joshua   schedule 23.01.2018