onLocationChanged n'est pas appelé automatiquement

J'ai un problème avec onLocationChanged événement dans Android. Voici le déclenchement:

case R.id.start: {
    Points.add(overlay.getMyLocation()); //Points' type is ArrayList<GeoPoint>
    mgr.requestLocationUpdates(best, 0, 3, locationListener);
    }
    break;

Et voici le onLocationChanged méthode:

public void onLocationChanged(Location location) {
    i++;
    Points.add(overlay.getMyLocation());
    MapOverlay mapOverlay = new MapOverlay(Points.get(i-1), Points.get(i));
    map.getOverlays().add(mapOverlay); //does the drawing
    mMapController.animateTo(Points.get(i));
}

Donc, onLocationChanged est appelée qu'une seule fois et seulement après j'appuie sur "start". C'est censé être appelée automatiquement à chaque fois que l'emplacement a changé, non? Dans mon cas, il n'est pas.
S'il vous plaît aider moi.

source d'informationauteur user1080051