requestLocationUpdates против getLastLocation

Обновляет ли вызов requestLocationUpdates из LocationManager местоположение, возвращаемое getLastLocation?

то есть, могу ли я сделать это:

  1. вызвать getLastLocation. он возвращает ноль, тогда:
  2. вызов запросаLocationUpdates;
  3. получить onLocationChanged на моем слушателе и ничего не делать

И после этого вызвать getLastLocation и получить что-то !=null?

Спасибо!


person Community    schedule 28.01.2018    source источник
comment
Можете ли вы добавить и пример?   -  person Guillaume S    schedule 28.01.2018


Ответы (1)


getLastLocation вернет последнее местоположение, если LocationManager имеет предыдущее чтение местоположения. Если LocationManager не имеет предыдущего местоположения, будет возвращено значение null.

requestLocationUpdates будет запрашивать текущие обновления местоположения, пока вы не отмените подписку на обновления местоположения.

Более подробную информацию можно найти здесь:

https://developer.android.com/training/location/retrieve-current.html

Ниже приводится объяснение того, почему getLastLocation может возвращать значение null:

Location is turned off in the device settings. The result could be null even if the last location was previously retrieved because disabling location also clears the cache.

The device never recorded its location, which could be the case of a new device or a device that has been restored to factory settings.

Google Play services on the device has restarted, and there is no active Fused Location Provider client that has requested location after the services restarted. To avoid this situation you can create a new client and request location updates yourself. For more information, see Receiving Location Updates.
person dazza5000    schedule 28.01.2018