i'm receving gps data via ddms using kml file in android , i'm using following code:
public class screen4 extends mapactivity { list<geopoint> geopointsarray = new arraylist<geopoint>(); @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.screen4); lm = (locationmanager)getsystemservice(context.location_service); locationlistener = new mylocationlistener(); mapview = (mapview) findviewbyid(r.id.mapview1); mapview.setbuiltinzoomcontrols(true); mc = mapview.getcontroller(); lm.requestlocationupdates(locationmanager.gps_provider,0,0,locationlistener); } private class mylocationlistener implements locationlistener { @override public void onlocationchanged(location loc) { if (loc != null) { latitude=(int)(loc.getlatitude()* 1e6); longitude=(int)(loc.getlongitude()* 1e6); geopoint p = new geopoint(latitude,longitude); geopointsarray.add(p); mc.animateto(p); mc.setzoom(17); mapview.invalidate(); mapview.setsatellite(true); } }
in onlocationchanged() retrieve gps data , store in geopoint p, want find out address of first point(latitude,longitude) , of last point gps data retrieve.
my question is: program stay blocked @ line:
lm.requestlocationupdates(locationmanager.gps_provider,0,0,locationlistener);
until gps data retrieved?
in way can apply geocoder geopointsarray(0) , after geopointsarray(maxsize).
my problem don't know how program works,so can't figure out when gps data retrieved(my geopointsarray full) , apply geocoder.
question2:
in moment start receive location updates want connect remote server , send gps data stored in geopointarray server. idea of should start thread? have bunch of code lines guess no 1 going read that!
my question is:does program stays blocked @ line: lm.requestlocationupdates(locationmanager.gps_provider,0,0,locationlistener); until gps data retrieved????
no. location updates asynchronous.
Comments
Post a Comment