Ответ 1
Ваш вопрос непонятен изначально. Ваш код и заголовок не совпадают. Я отвечаю только за свой титул.
Вам необходимо зарегистрировать приемник местоположений для своего менеджера местоположений, а затем только onLocationChanged() будет вызываться в соответствии с настройками, которые вы указали при регистрации регистратора местоположений.
См. ниже код, как это сделать. Я использовал GPS-провайдер, вы также можете использовать любого провайдера на основе критериев.
LocationManger lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, new LocationListener() {
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status,
Bundle extras) {
// TODO Auto-generated method stub
}
});
Подойдя к вашему вопросу, onLocationChanged() будет вызываться, если текущее обновление местоположения не соответствует последнему известному местоположению.
Обновленное местоположение будет изменено для каждого minTime (в моем случае 1000 миллисекунд), а также если устройство переместило расстояние minDistance (в моем случае 0 метров).
Надеюсь, вы поймете это.