#android #null #gps
#Android #null #gps
Вопрос:
Допустим, у меня есть объект, который будет установлен асинхронно (например, позиция пользователя в GPS). Есть ли способ вызывать метод в Activity только тогда, когда этот объект не равен null?
Ответ №1:
Если вы просто хотите вызвать метод, если какой-либо объект не равен нулю, то:
if (myObject != null) { callMyActivityMethod()}
Основываясь на вашей обновленной информации, вы хотите вызвать метод только после получения местоположения от GPS.
LocationListener используется для получения уведомлений от вашего LocationManager.
Создайте LocationListener
и передайте его в свой requestForLocationUpdates()
. Затем он уведомит вас о получении нового местоположения. Например:
LocationListener locListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
callMyActivityMethod();
}
@Override
public void onStatusChanged(String s, int i, Bundle bundle) {
}
@Override
public void onProviderEnabled(String s) {
}
@Override
public void onProviderDisabled(String s) {
}
};
...
requestLocationUpdates(provider, minTime, minDistance, locListener);
...
Комментарии:
1. Хорошо, конечно, я над этим поработал, но не решает, потому что, если после этого мой объект будет установлен, и он больше не будет нулевым?
2. Пожалуйста, объясните вашу проблему более подробно. Я ответил на вопрос «Есть ли способ вызывать метод в Activity только тогда, когда этот объект не равен null?», Основываясь на предоставленной до сих пор информации.
3. У меня есть класс, который использует GPS в Android. Когда я вызываю метод в activity для активации GPS, требуется время, чтобы получить первое местоположение пользователя. Через несколько строк я вызываю метод, чтобы получить местоположение и поместить его на карту. Но когда я получаю, его значение равно нулю. Итак … мне нужен способ вызывать метод только для получения позиции, когда она не равна нулю. Я подумываю об использовании потока, но если есть другой способ…
4. Спасибо за ваше дальнейшее объяснение. С этим можно легко справиться. Я обновлю свой ответ.