Поведение LocationManager.getLastKnownLocation
, которое вы описываете, точно соответствует определению этого метода :
Получает последнее известное местоположение от данного поставщика или null, если есть это не последнее известное местоположение. Возвращенное местоположение может быть довольно старым при некоторых обстоятельствах, поэтому всегда следует проверять возраст местоположения. Это никогда не активирует датчики для вычисления нового местоположения, а вернет только кэшированное местоположение.
Следовательно, если используется какое-либо другое приложение, запрашивающее фактическое местоположение (например, Google Maps) кэшированное значение обновляется, и вы можете получить его через getLastKnownLocation
.
Если вы активно хотите получить новое местоположение, вы должны использовать getCurrentLocation
или продолжать использовать getLastKnownLocation
, но принудительно указать местоположение обновить, прежде чем позвонить по номеру requestSingleUpdate