Существует интерфейс называется LocationListener:
http://developer.android.com/reference/android/location/LocationListener.html
Вы можете использовать LocationManager как:
public void startLocationUpdates() {
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, false);
locationManager.requestLocationUpdates(bestProvider, 60000, 10, new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {}
@Override
public void onProviderEnabled(String provider) {}
@Override
public void onProviderDisabled(String provider) {}
@Override
public void onLocationChanged(Location location) {
System.out.println("LOCATION CHANGED: "+location);
}
});
}
public void stopLocationUpdates() {
locationManager.removeUpdates(this);
}
10-это минимальное расстояние, и 60000 в данном случае является минимальным время между запросами.
Будет ли он продолжать работать вечно? (За исключением случаев, когда пользовательская сила останавливает приложение)? –
Да, если поставщик местоположения (GPS или WIFI и т. Д.) Не работает. Но вы можете следить за этим в методе onStatusChanged, который дает вам эту информацию. – breakline
Так что я должен называть 'startLocationUpdates' в' onProviderEnabled', чтобы он работал навсегда? –