J'ai une application qui utilise les fonctions de LocationManage qui fonctionne bien jusqu'à ce que l'application soit arrêtée ou en pause. La fonction d'écouteur de localisation continue à fonctionner en arrière-plan. Les bits de code pertinents suivent. Lorsque je clique sur la page d'accueil ou de retour, la fonction onstop() est déclenchée correctement.Je n'arrive pas à obtenir mlocManager.removeUpdates (mlocListener); pour travailler
package uk.cr.anchor;
import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.media.MediaPlayer;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TableRow;
import android.widget.Toast;
import android.widget.ToggleButton;
import android.content.SharedPreferences;
import android.graphics.Color;
public class main extends Activity {
/** Called when the activity is first created. */
private LocationManager mlocManager;
private LocationListener mlocListener;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new MyLocationListener();
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
}
@Override
protected void onStop(){
stoplistening();
super.onStop();
}
/* Class My Location Listener */
public class MyLocationListener implements LocationListener
{
@Override
public void onLocationChanged(Location loc)
{
loc.getLatitude();
loc.getLongitude();
etc etc etc
}
private void stoplistening() {
if (mlocManager != null) {
Toast.makeText(getApplicationContext(),
"kill",
Toast.LENGTH_SHORT).show();
mlocManager.removeUpdates(mlocListener);
}
else {
Toast.makeText(getApplicationContext(),
" not kill",
Toast.LENGTH_SHORT).show();
}
}
}
Je reçois toujours le message «ne pas tuer».
Quelqu'un peut-il m'aider!
Dans votre fonction onCreate, vous déclarez une nouvelle variable mlocManager et mlocListener. Ne mettez pas le type devant le paramètre car vous n'utilisez pas celui déclaré dans la classe (par dessus onCreate). –