Comment cela fonctionne - requestLocationUpdates() + LocationRequest/Écouteur

Je suis nouveau Android coder et j'ai un problème avec la demande de mises à jour pour ma localisation.

Je travail avec des tutoriels de http://developer.android.com/training/location/receive-location-updates.html .

Mon application peut gérer les exceptions, l'obtention de la latitude et de la longitute correctement, et geocoder peut gérer l'affichage de l'adresse. Mais je demande pour l'emplacement qu'une seule fois, ou lors de modifications de l'emplacement. Je voudrais faire des intervalles de temps. Pour l'instant j'ai commencé la mise en œuvre du code à partir de la liste des tutoriels et ça ressemble à ça:

public class MainActivity extends Activity implements 
GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener,
LocationListener {

private static final int MILLISECONDS_PER_SECOND = 1000;

public static final int UPDATE_INTERVAL_IN_SECONDS = 5;
private static final long UPDATE_INTERVAL =
          MILLISECONDS_PER_SECOND * UPDATE_INTERVAL_IN_SECONDS;

private static final int FASTEST_INTERVAL_IN_SECONDS = 1;
private static final long FASTEST_INTERVAL =
          MILLISECONDS_PER_SECOND * FASTEST_INTERVAL_IN_SECONDS;

private TextView tvStatus;
private TextView tvLatitude;
private TextView tvLongitude;

LocationRequest mLocationRequest;
LocationClient mLocationClient;
Location mCurrentLocation;

boolean bNetworkEnabled;
boolean bGPSEnabled;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    tvStatus = (TextView)findViewById(R.id.tvStatus);
    tvLatitude = (TextView)findViewById(R.id.tvLatitude);
    tvLongitude = (TextView)findViewById(R.id.tvLongitude);

    mLocationRequest = LocationRequest.create();
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    mLocationRequest.setInterval(UPDATE_INTERVAL);
    mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
    mLocationClient = new LocationClient(this, this, this);

    checkProviders();
}

Il y a donc déjà des intervalles de mise en œuvre et de la demande de localisation. Mais dans le lien que j'ai donné avant il y a un commentaire que je devrais utiliser quelque part requestLocationUpdates() (probablement onCreate(), onStart() et le retrait de la demande sur onStop()), mais j'ai un problème avec elle. Donc, Eclipse me montre 3 méthodes:

requestLocationUpdates(LocationRequest request, LocationListener listener)
requestLocationUpdates(LocationRequest request, PendingIntent CallbackIntent)
requestLocationUpdates(LocationRequest request, LocationListener listener, Looper looper)

Donc le premier que je pense est le plus juste à cet endroit. Que dois-je placer dans LocationListener logement? Je demande de l'aide avec peu d'explication de la façon dont il fonctionne.

InformationsquelleAutor F1sher | 2013-06-03