Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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 如何在android上从UI运行两个线程,其中第二个线程直到第一个线程完成才运行_Java_Android_Multithreading_Android Asynctask_Handle - Fatal编程技术网

Java 如何在android上从UI运行两个线程,其中第二个线程直到第一个线程完成才运行

Java 如何在android上从UI运行两个线程,其中第二个线程直到第一个线程完成才运行,java,android,multithreading,android-asynctask,handle,Java,Android,Multithreading,Android Asynctask,Handle,我正试图设计一款android应用程序,但在结构上遇到了困难 基本上,从UI操作开始,我需要运行一个线程来做一些繁重的数学工作,这个线程将运行一段由UI变量设置的时间,而不是每次运行时都保持不变 在这个线程完成并生成一个结果之后,我认为它将返回到ui线程,然后我需要启动另一个线程,在与第一个线程不同的一段时间内再次执行另一个繁重的数学工作,并生成另一个数字,然后返回到ui线程 所以 有两个变量Time A和Time B的UI线程 UI线程开始上的按钮 线程1启动 做数学吗 直到时光流逝 数学结果

我正试图设计一款android应用程序,但在结构上遇到了困难

基本上,从UI操作开始,我需要运行一个线程来做一些繁重的数学工作,这个线程将运行一段由UI变量设置的时间,而不是每次运行时都保持不变

在这个线程完成并生成一个结果之后,我认为它将返回到ui线程,然后我需要启动另一个线程,在与第一个线程不同的一段时间内再次执行另一个繁重的数学工作,并生成另一个数字,然后返回到ui线程

所以 有两个变量Time A和Time B的UI线程 UI线程开始上的按钮

线程1启动 做数学吗 直到时光流逝 数学结果传回用户界面

然后UI启动线程2,但仅当线程1完成时启动

线程2已启动 做数学吗 直到时间B过去 数学结果传回用户界面

UI显示第一个线程和第二个线程的结果


希望这是有意义的

您熟悉该类的wait和notify方法吗?我将详细阅读它们,我假定我不是同时运行线程1和线程2,而是在线程2中等待,直到它收到线程1的通知,因为这似乎浪费了资源。我可以在UI线程中设置等待吗?等待可能会阻止UI线程,因此将其设置在那里可能不明智。可能的替代方案:让UI线程立即启动线程2,但是线程2通过等待某个同步对象启动,可能是在它分配任何大型对象之前。我只是抛出一些可能性,我不确定哪些适合你的应用程序。