Ваш вопрос не ясно, код initially.Your и название не соответствие. Я отвечаю только за свой титул.
Вам необходимо зарегистрировать приемник местоположения для своего диспетчера местоположений, а затем только 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 метров).
Надеюсь, вы поймете это.
Извините за то, что Югандхар, у меня тоже есть вопросы в одном, я должен перестать это делать, так что это очень запутанно. –
У меня есть тот же код, что и вы в другом действии, и это тот, который я бы хотел использовать, но я не могу убить его, как только он начнется, как бы я ни старался. Мне придется поместить это в другой пост. Спасибо за вашу помощь! –
, но как вы можете отличить случаи, когда onlocationchanged не вызывается, потому что ваше местоположение не изменилось, из случаев, когда onlocationchanged не вызывается, потому что сигналы gps слабы и исправление местоположения не может быть получено? – dariusiv