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
Post a Comment