类似的函数 SwingUtilities.invokeLater in android?

2022-09-03 10:16:04

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


答案 1

也许您正在寻找:

Activity.runOnUiThread(Runnable action)

答案 2
Activity.runOnUiThread(Runnable action);

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

还有另一种方法可以确保稍后调用 Runnable,即使您在 UI 线程上,也不会立即调用。为此,您可以在主线程上编写以下代码。如果你在后端线程上调用它,你的可运行对象将在后端线程上被清除。

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

推荐