title: Should I use android LocationManager.getBestProvider every time I ask for location updates?
body: <p>I'm using Google APIs and the MapActivity, MapView etc..<br>
  When I need to get my current location I use this code the FIRST TIME :</p>
  
  <pre><code>myLocationManager =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
  // Sets the criteria for a fine and low power provider
  Criteria crit = new Criteria();
  crit.setAccuracy(Criteria.ACCURACY_FINE);
  crit.setPowerRequirement(Criteria.POWER_LOW);    
  // Gets the best matched provider, and only if it's on
  String provider = myLocationManager.getBestProvider(crit, true);
  // If there are no location providers available
  if (provider == null){
      OnClickListener listener = new OnClickListener() {
  
          public void onClick(DialogInterface dialog, int which) {
              // Closes the activity
              finish();
          }
      };
      Utils.getInstance().showAlertDialog(this, R.string.warning_dialog_title,
                                 R.string.no_location_providers_error_message,
                              android.R.drawable.ic_dialog_alert, false, listener);
  }
  // Location services is enabled
  else{
      myLocationListener = new MyLocationListener();
      myLocationManager.requestLocationUpdates(
              provider,
              0,
              0,
              myLocationListener);        
      // TODO - put a marker in my location       
      GeoPoint currentGeoPoint = MapUtils.getInstance().
              getCurrentLocation(myLocationManager, provider);        
      // Center to the current location
      centerLocation(currentGeoPoint, MAX_ZOOM);
  }
  </code></pre>
  
  <p>I also have a "back to current location button" - for when the user moves the map around and wants to quickly return to his current location.</p>
  
  <p>My question is,
  should I use the <code>getBestProvider()</code> method <em>each time</em> I want to get location information?</p>
  
  <p>I could save the last choosen provider, but the conditions could change every second:</p>
  
  <ol>
  <li>User turned off GPS</li>
  <li>No GPS signal</li>
  <li>NETWORK_PROVIDER is better in the current situation</li>
  <li>etc..</li>
  </ol>
  
  <p>What is the right approach?</p>