Доброе утро, нужна помощь с этой функцией, не понимаю, как работает обработчик. Это мой текущий код:

Public class GeneraMarker {

static LatLng GenPosition(Double Lat, Double Long) {
    final Handler gen = new Handler();
    Runnable gener = new Runnable() {
        @Override
        public void run() {

            if (counter) {
                  //Random coordinates generator
            } else {
                gen.removeCallbacks(null);
                gen.removeCallbacksAndMessages(null);

            }

            gen.postDelayed(this, 600000);

        }

    };
    gen.post(gener);


    return aPosition;
}

}

0
AXOPAXO 10 Дек 2018 в 13:23

1 ответ

Лучший ответ

Handler получают объект Runnable для запуска блока кода. и его выполнение отделено от выполнения вашего метода. поэтому вам нужно создать слушателя, чтобы слушать ваш сгенерированный latlang, как показано ниже

 static void GenPosition(Double Lat, Double Long,ListenerClass listener) {
final Handler gen = new Handler();
Runnable gener = new Runnable() {
    @Override
    public void run() {
        if (counter) {
              //Random coordinates generator
         listener.generatedLatLang(newLatLang);
        } else {
            gen.removeCallbacks(null);
            gen.removeCallbacksAndMessages(null);

        }

        gen.postDelayed(this, 600000);

    }

};
gen.post(gener);
}
1
kartik malik 10 Дек 2018 в 11:11