Java Android:从线程调用方法

Java Android:从线程调用方法,java,android,methods,Java,Android,Methods,我在MainActivity中有一个线程处理程序,它调用名为UpdateGUI的方法 处理程序/线程声明和方法都在MainActivity中 这是处理程序声明: Handler handlerData = new Handler(); private Runnable runnableCode2 = new Runnable() { @Override public void run() { Log.d("Handlers","GET TOTAL RX BYTES:

我在
MainActivity
中有一个线程处理程序,它调用名为
UpdateGUI
的方法

处理程序/线程声明和方法都在
MainActivity

这是处理程序声明:

Handler handlerData = new Handler();

private Runnable runnableCode2 = new Runnable() {
    @Override
    public void run() {

     Log.d("Handlers","GET TOTAL RX BYTES:   "+Long.toString(res) );
        //Some code here that doesn't matter/
        UpdateGUI();
    }
        handlerData.postDelayed(runnableCode2, 1*6000);
    }
};
UpdateGUI
如下所示:

public void UpdateGUI(){
Log.d(“更新程序”,“开始更新”);
//这里不重要的代码}
}

从记录器中,我可以看到线程没有调用
UpdateGUI()
。你能解释为什么会发生这种情况,以及如何解决它吗


我只是想澄清一下。线程正在运行,但由于某些原因,它没有调用UpdateGUI()。

您需要至少运行一次处理程序,然后只有它会从处理程序runnable方法连续调用

因此调用
handler.post(runnableCode2)在您的代码中出现一次,并将重复该操作

handlerData.postDelayed(runnableCode2, 1*6000);

希望这能解决您的问题。

我看不到您启动了
可运行的

Handler handlerData = new Handler();

private Runnable runnableCode2 = new Runnable() {
@Override
public void run() {

 Log.d("Handlers","GET TOTAL RX BYTES:   "+Long.toString(res) );
    //Some code here that doesn't matter/
    UpdateGUI();
}
    handlerData.postDelayed(runnableCode2, 1*6000);
}
};

// This part is missing
handlerData.postDelayed(runnableCode2, 1000);

线程正在运行,它只是没有调用UpdateGUI()方法。好的,对不起,我以为你没有调用该线程。现在你能把写在UpdateGUI()中的代码放进去吗;