Autore Topic: removeUpdates non disabilita il gps  (Letto 498 volte)

Offline GeordiE

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Xp
removeUpdates non disabilita il gps
« il: 19 Maggio 2011, 14:27:32 CEST »
0
Ciao a tutti sto scrivendo un programma che utilizza il gps come vi riporto qui sotto:

Codice (Java): [Seleziona]
public class PosizioneAttuale extends MapActivity implements LocationListener, GpsStatus.Listener{
        private static MyDatabase helper;

    private LocationManager mService;
    private LocationProvider mProvider;
    boolean mStarted;
   
    private MapView mMapView;
    private MyLocationOverlay mMyLocationOverlay;
    private int mZoomLevel;
    private boolean mGotFix;


    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        mService = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        mService.addGpsStatusListener(this);
        mProvider = mService.getProvider(LocationManager.GPS_PROVIDER);
        if (mProvider == null) {
            Log.e("ATTENZIONE", "Impossibile connettersi al GPS_PROVIDER");
        }
        setContentView(R.layout.maplayout);
        helper = new MyDatabase(getApplicationContext());
        mMapView = (MapView)findViewById(R.id.map);
        mMyLocationOverlay = new MyLocationOverlay(this, mMapView);
        mMapView.getOverlays().add(mMyLocationOverlay);
        mMapView.setBuiltInZoomControls(true);
       
        mZoomLevel = 19;
        mMapView.getController().setZoom(mZoomLevel);
       
        mService.requestLocationUpdates(mProvider.getName(), 500, 0.0f, this);
        mMyLocationOverlay.enableMyLocation();
        mMyLocationOverlay.runOnFirstFix(new Runnable() { public void run() {
            mMapView.getController().animateTo(mMyLocationOverlay.getMyLocation());
        }});
        mGotFix = false;

    }

    @Override
    protected void onDestroy() {
        mService.removeGpsStatusListener(this);
        mService.removeUpdates(this);
        super.onDestroy();
    }

Quando però esco dall'applicazione con il tast back il gps rimane in ascolto, dove sbaglio?

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:removeUpdates non disabilita il gps
« Risposta #1 il: 19 Maggio 2011, 14:41:18 CEST »
0
non nell'ondestroy, ma nell'onpause o nell'onStop!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline GeordiE

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows Xp
Re:removeUpdates non disabilita il gps
« Risposta #2 il: 19 Maggio 2011, 14:52:30 CEST »
0
se lo metto nell'onPause o nell'onStop mi da un null pointer exception in questa riga

Codice (Java): [Seleziona]
mMyLocationOverlay.runOnFirstFix(new Runnable() { public void run() {
            mMapView.getController().animateTo(mMyLocationOverlay.getMyLocation());
        }});


Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:removeUpdates non disabilita il gps
« Risposta #3 il: 19 Maggio 2011, 14:54:05 CEST »
0
se lo metto nell'onPause o nell'onStop mi da un null pointer exception in questa riga

Codice (Java): [Seleziona]
mMyLocationOverlay.runOnFirstFix(new Runnable() { public void run() {
            mMapView.getController().animateTo(mMyLocationOverlay.getMyLocation());
        }});

splitta un po gli accessi in piu righe, cosi è impossibile capire cosa è a dare il null pointer.
prova a metterli in variabili temporanee, cosi vedi a che riga ti da l'errore
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia