java - Android - Future.get() 使 UI 卡住

标签 java android user-interface future callable

我正在使用可调用函数在单独的线程中运行。但是当我调用 futAdd.get()

时,我的 UI 被卡住

我的代码是

        Callable<Double[]> calAdd = new addCallable(values,values_2);
        ExecutorService exec = Executors.newFixedThreadPool( 3 );
        Future<Double[]> futAdd = exec.submit( calAdd );

        try {
            Double[] ans = futAdd.get();
            }
            catch(Exception e){
                 //
            }

为什么应用程序在单独的线程上运行时会卡住?

最佳答案

UI 已被卡住,因为线程中有太多工作,您可以执行下一个

 val thread = Thread(Runnable {
                  Callable<Double[]> calAdd = new addCallable(values,values_2);
        ExecutorService exec = Executors.newFixedThreadPool( 3 );
        Future<Double[]> futAdd = exec.submit( calAdd );

        try {
            Double[] ans = futAdd.get();
            }
            catch(Exception e){
                 //
            }
            })
       thread.start()

//如果想等待结果就可以等待结果,

thread.join();

关于java - Android - Future.get() 使 UI 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62362001/

相关文章:

java - 调用 API 成功但无法从 setter 和 getter 获取字符串

android - 查询 packageManager 以处理 Intent 时 GET_INTENT_FILTERS 和 MATCH_DEFAULT_ONLY 之间的区别

visual-studio-2010 - Visual Studio 编码的 UI : recording AND adding assertions

android - 设置 Android 对话框位置

python - 如何使用 Python 在 Gtk3 中显示 png 图像?

java - 为接口(interface)中的默认方法编写 Junit 测试用例

java - 在Python中修改条件表达式中的变量

java - 默认获取android手机号码

android - 错误:Connection reset (Gradle sync failed: Connection reset)

java - 如何从json数组中读取特定的json对象元素?