类似的函数SwingUtilities.invokeLater在android?

时间:2012-07-25 02:01:05

标签: java android swing

有时我觉得使用AsyncTask对于任务来说太过分了,我正在寻找类似于Android中的SwingUtilities.invokeLater的功能。因为我只想执行一行代码,没有必要为此创建一个新类。

3 个答案:

答案 0 :(得分:24)

也许你正在寻找:

Activity.runOnUiThread(Runnable action)

答案 1 :(得分:5)

Activity.runOnUiThread(Runnable action);

上面的方法与java的invokeLater略有不同,因为它检查你是否已经在ui线程上,然后它会立即运行你的Runnable。

还有另一种方法可以确保稍后调用Runnable,即使你在UI线程上也不会立即调用。要做到这一点,你在主线程上编写以下代码..如果你在后端线程上调用它,你的runnable将被执行到后端线程..

  Handler h = new Handler();
    h.post(new Runnable() {
        @Override
        public void run() {
        //your code..
        }
    );

答案 2 :(得分:1)

我不记得invokeLater()究竟做了什么,但如果你想执行延迟的事情,你可以使用postDealayed()。这种情况发生在UI线程上,因此不适合长时间运行的任务。