android - GPS stopping, onPause() -


in app when start using gps can’t stop it, doesn’t matter if push or home button toast appears (i put 0, 0 @ requestlocationupdate call see if that)

it apears onpause method (in when push back/home button enters) removeupdates call doesn’t enything. or else problem? please me cause last 3 days i’m stuck problem. logic of app: have button push checks provider active whatisenabled() method

my code is:

public class map extends mapactivity { private mapview mapview; private mapcontroller mc; private geopoint p; private context context; private drawable drawable; private bundle instancestate; private edittext et; private imagebutton connect, layers, location; private int = 1; //private settings settings; private locationmanager locationmanager; private locationlistener locationlistener;  /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     instancestate = savedinstancestate;     setcontentview(r.layout.main);     context = getapplicationcontext();      //settings = new settings();      //to zoom     mapview = (mapview) findviewbyid(r.id.mapview);     mapview.setbuiltinzoomcontrols(true);      et = (edittext) findviewbyid(r.id.address);      connect = (imagebutton) findviewbyid(r.id.connect_icon);     connect.setonclicklistener(connect_button);       layers = (imagebutton) findviewbyid(r.id.layers);       layers.setonclicklistener(layer_button);      //locationmanager = (locationmanager) getsystemservice(context.location_service);     //locationlistener = new coordonates(drawable, mapview, map.this);     location = (imagebutton) findviewbyid(r.id.location_icon);     location.setonclicklistener(location_button);        //markers     drawable = this.getresources().getdrawable(r.drawable.blue_pin);  }  private onclicklistener connect_button = new onclicklistener() {      @override     public void onclick(view v) {         // todo auto-generated method stub         intent myintent = new intent(map.this, connection.class);         map.this.startactivity(myintent);     } };  private onclicklistener layer_button = new onclicklistener() {      @override     public void onclick(view v) {         // todo auto-generated method stub          if(i%2 != 0) {             mapview.setstreetview(true);             mapview.setsatellite(false);         }         else {             mapview.setsatellite(true);             mapview.setstreetview(false);         }         i++;     } };  private onclicklistener location_button = new onclicklistener() {      @override     public void onclick(view v) {         // todo auto-generated method stub          //registerloclistener();          locationmanager = (locationmanager) getsystemservice(context.location_service);         locationlistener = new coordonates(drawable, mapview, map.this);          switch(settings.whatisenabled()) {         case 1: {             toast.maketext(context, "location services disabled",toast.length_long).show();             break;         }         case 2: {             toast.maketext(context, "location obtained via gps satellites",toast.length_long).show();             toast.maketext(context, "waiting location",toast.length_long).show();             system.out.println("1");             locationmanager.requestlocationupdates(locationmanager.gps_provider, 0, 0,locationlistener);//50             if(coordonates.getlatitude() == 0)                   toast.maketext(context, "no gps signal",toast.length_long).show();             system.out.println("2");             break;         }         case 3: {             toast.maketext(context, "location obtained via wi-fi/mobile network",toast.length_long).show();             locationmanager.requestlocationupdates(locationmanager.network_provider, 0, 0, locationlistener);//1000             if(coordonates.getlatitude() == 0)                   toast.maketext(context, "no wi-fi/mobile network signal",toast.length_long).show();             break;         }/*         case 4: {             toast.maketext(context, "location obtained via best provider available",toast.length_long).show();             locationmanager.             break;         }*/         }     } }; /* protected void onresume() {      super.onresume(); }*/  @override protected void onpause() {     // todo auto-generated method stub     system.out.println("a intrat in onpause()");     if(locationmanager != null) {         locationmanager.removeupdates(locationlistener);     }     locationlistener = null;     locationmanager = null;     super.onpause(); } 

i developed similar application put the

locationmanager.removeupdates(locationlistener);

in oncreate() method after location rather in onpause(). problem putting in onpause() called when leave (pause) activity. since not tracking user's movement, stop listener once location.

this might not useful developing application different functionality did.

good luck!


Comments