Autore Topic: GPS non riesco a stoppare il locationListener  (Letto 794 volte)

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
GPS non riesco a stoppare il locationListener
« il: 23 Dicembre 2011, 15:43:58 CET »
0
Seguento il tutorial che ho trovato sul sito ho creato un'applicazione che mi segue quando mi sposto con il gps attivo, in pratica a ogni evento del LocationListener invio stampo i dati a video quindi ho pensato per fermare i dati alla fine dell'applicazione di creare un metodino da chiamare all'evenienza:

Codice (Java): [Seleziona]
        public void stopGps() {
                locationManager.removeUpdates(locationListener);
        }

la variabile è l'ho dichiata prima come: private LocationManager locationManager;
e il locationListener come da tutorial modificando l'evento onChange,
se lascio la dichiarazione semplice così mi crea questo logcat:
Codice: [Seleziona]
12-23 15:23:16.777: ERROR/AndroidRuntime(4149): FATAL EXCEPTION: main
12-23 15:23:16.777: ERROR/AndroidRuntime(4149): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {com.maki.mambu/com.maki.mambu.MenuLauncher}: java.lang.NullPointerException
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at android.app.ActivityThread.deliverResults(ActivityThread.java:2532)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at android.app.ActivityThread.handleSendResult(ActivityThread.java:2574)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at android.app.ActivityThread.access$2000(ActivityThread.java:117)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:961)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at android.os.Looper.loop(Looper.java:130)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at android.app.ActivityThread.main(ActivityThread.java:3683)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at java.lang.reflect.Method.invokeNative(Native Method)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at java.lang.reflect.Method.invoke(Method.java:507)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at dalvik.system.NativeStart.main(Native Method)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149): Caused by: java.lang.NullPointerException
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at com.maki.mambu.gpsClass.stopGps(gpsClass.java:177)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at com.maki.mambu.MenuLauncher.onActivityResult(MenuLauncher.java:343)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at android.app.Activity.dispatchActivityResult(Activity.java:3908)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     at android.app.ActivityThread.deliverResults(ActivityThread.java:2528)
12-23 15:23:16.777: ERROR/AndroidRuntime(4149):     ... 11 more

se invece dichiaro il locationManager come static esegue senza errori il mio metodo solo che in realtà il gps è ancora attivo e raccoglie ancora dati.
Non so che fare, avete qualche idea?

Offline Reinhard

  • Utente junior
  • **
  • Post: 85
  • Respect: +16
    • Google+
    • rspisser
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5 Lollipop 5.1
  • Play Store ID:
    rspisser
  • Sistema operativo:
    Windows 7
Re:GPS non riesco a stoppare il locationListener
« Risposta #1 il: 26 Dicembre 2011, 21:49:38 CET »
0
ma in che punto chiami il StopGps()?

perché non lo metti nel metodo onStop() così Android lo invoca automaticamente quando "spegne" il tuo applicativo?


Codice (Java): [Seleziona]
        @Override
        public void onStop() {
          if (locationListener!=null){
                        locationManager.removeUpdates(locationListener);
                }
                super.onStop();
        }