Hi, Nemat I think your problem is that you call requestLocationUpdates in the TimerTask thread.
As the document<http://androidappdocs.appspot.com/reference/android/location/LocationManager.html#requestLocationUpdates(java.lang.String, long, float, android.location.LocationListener)> says, The calling thread must be a Looper<file:///E:/SDK/android-sdk-windows-1.6_r1/docs/reference/android/os/Looper.html>thread such as the main thread of the calling Activity. 2009/11/11 Nemat <nemate...@gmail.com> > Hi frinds...... > > I am presently working on GPS.I have to start GPS periodically.I mean > I want GPS to start after a particular intervel,get Location value and > then stop taking location updates.For this,I m calling > requestLocationUpdates( , , ) method in a timer.Then in > onLocationChanged(), I stop taking location by using removeUpdates > ().Then after particular intervel ,it again start taking values,then > when location changes ,it stops, and so on...... > > Here is my code: > TimerTask IntervelTimer = new TimerTask() > { > public void run() > { > Log.d > ("startLocationUpdate","startLocationUpdate"); > startLocationUpdate(); > > } > }; > Timer timer2 = new Timer(); > > > try{ > timer2.schedule(IntervelTimer, 1*60 * 1000, 1*60 * 1000); > } > catch(Exception e) > { > Log.e("Error",e.toString()); > } > > public void startLocationUpdate() > { > System.out.println("startLocationUpdate()"); > if(locationListener==null) > { > Looper.prepare(); > > locationListener = new > MyLocationListener(); > try{ > lm.requestLocationUpdates( > LocationManager.GPS_PROVIDER, > 0, > 0, > locationListener); > } > catch(Exception e) > { > Log.e("error",e.toString()); > } > Looper.loop(); > Looper.myLooper().quit(); > } > } > > private class MyLocationListener implements LocationListener > { > public void onLocationChanged(Location loc) { > System.out.println("GetLocation"); > if (loc != null) { > StoreGPSlocation(String.valueOf > (loc.getLatitude()),String.valueOf(loc.getLongitude())); > stopLocationUpdate(); > } > } > > public void onProviderDisabled(String provider) { > // TODO Auto-generated method stub > } > > public void onProviderEnabled(String provider) { > // TODO Auto-generated method stub > } > > public void onStatusChanged(String provider, int status, > Bundle extras) { > // TODO Auto-generated method stub > } > } > > public void stopLocationUpdate() > { > LocationManager lm = (LocationManager)getSystemService > (Context.LOCATION_SERVICE); > if (lm != null) > > { > if (locationListener != null) > > { > > lm.removeUpdates(locationListener); > locationListener= null; > > } > > > > lm = null; > > } > > > > } > > Now the problem is:It starts fine for the first time,when location > changes it stops then starts again,but the timer stops running after > that.I dont get any error or exception.I dont know where is the > problem.As far as I am concirned,the problem is in timer...... > > What do you guys think.......???? > > I need Help..... urgently!!!!!!!!!!! > > Thanks in Advance > Nemat > > -- > You received this message because you are subscribed to the Google > Groups "Android Beginners" group. > To post to this group, send email to android-beginners@googlegroups.com > To unsubscribe from this group, send email to > android-beginners+unsubscr...@googlegroups.com<android-beginners%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/group/android-beginners?hl=en > -- You received this message because you are subscribed to the Google Groups "Android Beginners" group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en