Вы можете задать диспетчеру местоположения минимальный интервал ожидания между вызовами этого метода, но он не будет полностью напоминать, что этот интервал 100% времени (см. Описание LocationManager.requestLocationUpdates () ).Может быть короче, может быть дольше - потому что, например, он может быть облачным, а чип GPS не сможет получать обновления местоположения так часто, как вы этого хотите.
Нет правильного способа преодолеть это- услуги определения местоположения всегда будут иметь недостатки.Каждое приложение, учитывающее местоположение, которое я использовал, время от времени «подвешивало» маркер, потому что чип gps на мгновение терял свое значение.
Единственное, что вы можете сделать, чтобы немного сгладить это, - это запомнить скорость движения иесли gps lost fix дает поддельные обновления маркера карты, исходя из предположения, что пользователь движется в том же направлении с той же скоростью, с которой он был, когда gps имел исправление.Но это имеет смысл делать только для 2-5 пропущенных реальных обновлений (просто для сглаживания случаев, когда исправление потеряно на несколько секунд).
UPD Для этого вы можете реализоватьвид прослушивателя местоположения прокси, который будет обновлять маркер строго с учетом заданных интервалов, например каждые 200 мс, и делать это в зависимости от сохраненного местоположения.И сохраненное местоположение может быть асинхронно обновлено слушателем реального местоположения.У объектов местоположения есть время исправления, которое предоставило данные (см. getTime () метод), вы можете использовать это, чтобы определить, должны ли вы все еще «прогнозировать» следующее движение маркера, или местоположение достаточно старое, чтобы сдаться иуведомить пользователя, что gps не знает, где он находится:)