title: Why the method getLastLocation() get a location out of date sometimes?
body: <p>Im using the new api to get location. But even with this new api my device get the location out of date. This method (getLastLocation()) is getting a location out of date. If the wifi is onits ok, it gets the atual location. But when the wifi is off, it gets a old location. How the app of maps of Google can get the location so fast?</p>
  
  <p>This is the class I'm using:</p>
  
  <pre><code>public class NewGPSTracker implements
      GooglePlayServicesClient.ConnectionCallbacks,
      GooglePlayServicesClient.OnConnectionFailedListener,
      LocationListener, com.google.android.gms.location.LocationListener {
  
  
  private LocationRequest lr;
  private LocationClient lc;
  Location location;
  double latitude = 0;
  double longitude = 0;
  Context context;    
  public int res = 0;
  boolean connected;  
  
  
  public  NewGPSTracker(Context context) {
      this.context = context;
      lr = LocationRequest.create();
      lr.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
  
      lr.setInterval(5000);       
      lr.setFastestInterval(1000);
      lc = new LocationClient(context, this, this);   
  
      sp = context.getSharedPreferences("GPS", 0);
      editor = sp.edit();
  }
  
  @Override
  public void onLocationChanged(Location location) {              
      if (connected &amp;&amp; location != null) {
          latitude = location.getLatitude();
          longitude = location.getLongitude();
  
          }
  
  
      }
  
  }
  
  
  
  @Override
  public void onConnected(Bundle connectionHint) {
      Log.i("NewGPSTracker", "Google Play Services Conectado.");
      lc.requestLocationUpdates(lr, this);
      connected = true;           
  
      location = lc.getLastLocation();        
      if (connected &amp;&amp; location != null) {    
  
          latitude = location.getLatitude();
          longitude = location.getLongitude();    
          Log.i("Location", ""+latitude + " "+longitude);
  
      }       
  }
  
  @Override
  public void onConnectionFailed(ConnectionResult arg0) {     
      Log.e("NewGPSTracker", ""+arg0);
  }
  
  public double getLatitude() {
      return latitude;
  }
  
  public double getLongitude() {
      return longitude;
  }   
  
  
  public void connect(){
      lc.connect();
  }
  
  public void disconnect(){
      lc.disconnect();
  }       
  
  @Override
  public void onDisconnected() {
  
  }
  
  
  public void onProviderDisabled(String arg0) {
      // TODO Auto-generated method stub
  
  }
  
  public void onProviderEnabled(String arg0) {
      // TODO Auto-generated method stub
  
  }
  
  public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
      // TODO Auto-generated method stub
  
  }   
  </code></pre>
  
  <p>}</p>