java - 如何从线程调用 UIThread 上的方法?

标签 java android multithreading

虽然在自己的线程上运行长期任务很有用,但为了更新 UI 组件,需要在 UIThread 中运行代码。否则,您的应用程序将在执行期间抛出 CalledFromWrongThreadException。如何在 UIThread 上运行代码?

最佳答案

有多种方法可以实现这一目标:

  1. 使用 runOnUiThread() 方法调用
  2. 使用 post() 方法调用
  3. 使用处理程序框架
  4. 使用广播和广播接收器(可以选择使用 LocalBroadcastManager)
  5. 使用 AsyncTask 的 onProgressUpdate() 方法

方法一:

    runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    // do something
                }
            });

了解更多:http://www.intertech.com/Blog/android-non-ui-to-ui-thread-communications-part-1-of-5/#ixzz3hnx3hdS5

关于java - 如何从线程调用 UIThread 上的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31800364/

相关文章:

java - ini4j 库的类未找到异常

java - Arquillian TomEE 测试性能

java - 将整数数组从一个类传递到另一个类

c - 将顺序代码转换为 openMP 并行结构

java - 如何在 JTextField 中删除文本?

java - 如何使用 javascript 打印选择标签的下拉值?

android - 将图像数据从 Activity 传输到 fragment

java - Android HttpsUrlConnection 验证 SSL

python - Python Django 的多线程

c++ - 由于 Sleep 函数,线程终止了进程