创建一个Handler函数以随机生成5个坐标

早上好,我需要帮助这个功能,我不明白处理程序是如何工作的 . 这是我目前的代码:

公共类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;
}

}

回答(1)

2 years ago

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);
}