Метод вызова только тогда, когда объект не равен нулю

#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. Спасибо за ваше дальнейшее объяснение. С этим можно легко справиться. Я обновлю свой ответ.