-5

我遇到了runOnUiThreadHandlers,但对我来说,它们在哪些事实上完全不同似乎仍然存在疑问。

更新 UI 的最佳方式是什么?我应该使用runOnUiThreadorHandler吗?

已经通过链接。仍然无法证明差异是合理的。

先感谢您

4

3 回答 3

3

runOnUiThread 是一种使用主 ui 处理程序的方法,因此它们基本上是相同的。唯一的区别是,如果您在 ui 处理程序中调用它,您只需运行它而不是发布它。

public final void runOnUiThread(Runnable action) {
   if (Thread.currentThread() != mUiThread) {
      mHandler.post(action);
   } else {
      action.run();
   }
}
于 2016-09-07T10:27:47.877 回答
1

处理程序是实现事件队列的好方法。它不必在主线程上运行,您可以设置自己的looper。RunOnUiThread 基本上是一种快捷方式,因此您实际上没有启动处理程序等。

于 2016-09-07T10:24:36.527 回答
1

处理程序在其中声明它的地方注册自己。或者您也可以手动设置弯针。

如果您想将多次数据发布到主线程,则处理程序特别有用。

runOnUiThread 是 Activity 的方法。所以当你需要更新 UI Thread 时,你必须按如下方式编写代码。

       runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    // update the ui

                }
            });

所以没有可重用性。

例如,您要更新文件下载的状态。您应该多次编写上述方法。

但是使用 Handler 对象会使用同一个 Handler 对象多次更新 UI。

于 2016-09-16T10:16:40.920 回答