I'm using a LocationClient to get the current location every minute:
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(60000);
mLocationRequest.setFastestInterval(60000);
mLocationClient = new LocationClient(this, this, this);
// ... when connected:
mLocationClient.requestLocationUpdates(mLocationRequest, this);
However I noticed that my LocationListener's onLocationChanged-method is called either every 60 or 120 (or any other multiple of 60) seconds (+/- 3 seconds). The documentation says:
This interval is inexact. You may not receive updates at all (if no location sources are available), or you may receive them slower than requested. [...]
So I know, that the interval is not exact one minute. But I thought that I would get the current location as fast as possible after the 60 seconds are over, for example after 75 seconds. But it seems that if the LocationClient cannot determine the location it simply retries after the next 60 seconds.
Is this assumption correct?
If yes, a workaround would be to set the interval to something lower like 30 seconds or so and filter out the required locations in the onLocationChanged-method. But that would probably consume more battery power.