Android: диспетчер местоположений
Запускать обновления местоположения по разным критериям один за другим
Как я могу запускать обновления местоположения, используя "requestforlocationupdates" для разных критериев один за другим.
Проблема, с которой я сталкиваюсь, заключается в том, что, когда я запускаю обновления местоположения, скажем, для трех критериев, код начинает выполнение для первого критерия, а затем создается отдельный поток, который ожидает изменения местоположения и работает со слушателем. Поэтому, прежде чем я удаляю обновления для первого критерия, у меня уже есть второй критерий, начинающий выполнение в главном потоке и снова запрашивающий обновления местоположения с использованием новых критериев. В результате я всегда могу выполнить только последние критерии.
1 ответ
Функция LocationManager.getBestProvider() возвращает вам лучшего доступного поставщика. Если нет поставщика, соответствующего вашим критериям, он будет ослаблен, пока поставщик не будет найден. Вы можете увидеть свое определение критериев в качестве верхней границы.
Если вы хотите использовать другие критерии, вы можете проверить в обратном вызове LocationListener.onStatusChanged(), какой поставщик используется в действительности. Если вам не нравится поставщик (потому что это сеть, и вы хотите GPS Fe), есть место, чтобы начать новый запрос для поставщика.