locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
0,
0,
this);
With a call to LocationManager#requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener), the location provider will only send your application an update when the location has changed by at least minDistance meters AND at least minTime milliseconds have passed. So minTime should be the primary tool to conserve battery life, and, to a lesser extent, minDistance.
These two must imperatively be greater than 0.
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
0,
0,
this);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
60000L, // refresh location at least each 60000ms
10.0f, // refresh location at least each 10 meters
this);