Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在使用并发集合的不同线程上更新ui_Java_Android_Multithreading - Fatal编程技术网

Java 如何在使用并发集合的不同线程上更新ui

Java 如何在使用并发集合的不同线程上更新ui,java,android,multithreading,Java,Android,Multithreading,我的应用程序需要运行8个不同的计时器(每个计时器都是一个对象)-每次更新其中一个计时器时(在每个计时器对象上,它是evrey X seconds发送的更新时间对象的倒计时计时器),ui也需要更新 因此,我在ui类(mainActivity)上保留了一些队列,这些队列需要存储相关对象,直到它更新ui为止 如何在javaandroid上创建并发队列 当从队列更新ui元素时,如何在不同的线程上更新ui,而不创建一些“冻结” 对于线程安全列表,可以使用Vector。 除了主线程之外,您不能在其他线程上更

我的应用程序需要运行8个不同的计时器(每个计时器都是一个对象)-每次更新其中一个计时器时(在每个计时器对象上,它是evrey X seconds发送的更新时间对象的倒计时计时器),ui也需要更新

因此,我在ui类(mainActivity)上保留了一些队列,这些队列需要存储相关对象,直到它更新ui为止

  • 如何在javaandroid上创建并发队列
  • 当从队列更新ui元素时,如何在不同的线程上更新ui,而不创建一些“冻结”

  • 对于线程安全列表,可以使用
    Vector
    。 除了主线程之外,您不能在其他线程上更新UI,这是针对Android线程生态系统的,在Android线程生态系统中,主线程一直在侦听事件、消息和进程

    对于同一个问题,有多种方法

    [runOnUiThread][1]
    [Handlers][1]
    您可以找到更多

    e、 g


    请发布代码[runOnUiThread][1],[Handlers][1],您可以找到更多/
    runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                //perform some UI operation here..
                            }
                        });