Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.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 如何像使用线程切换一样工作_Java_Android_Multithreading - Fatal编程技术网

Java 如何像使用线程切换一样工作

Java 如何像使用线程切换一样工作,java,android,multithreading,Java,Android,Multithreading,我有一个复选框。若我检查了它,那个么我需要将数据上传到服务器。我已经在Thread类中编写了这个上传逻辑。如果我取消选中复选框,我想取消上传等等。问题是,在尝试使用相同的线程时,如果在某些情况下,我将线程状态设置为TERMINATED(this.getState()==thread.state.TERMINATED)。在这种情况下我需要做什么?如果线程状态是新的,那么我将调用start()方法。但在这种情况下,我需要做什么 简单回答:不要重用线程。线程池在大型服务器端系统上有其优势,但在移动电话

我有一个复选框。若我检查了它,那个么我需要将数据上传到服务器。我已经在Thread类中编写了这个上传逻辑。如果我取消选中复选框,我想取消上传等等。问题是,在尝试使用相同的线程时,如果在某些情况下,我将线程状态设置为TERMINATED
(this.getState()==thread.state.TERMINATED)
。在这种情况下我需要做什么?如果线程状态是新的,那么我将调用
start()
方法。但在这种情况下,我需要做什么

简单回答:不要重用线程。线程池在大型服务器端系统上有其优势,但在移动电话上没有优势


终止的线程已失效,不再需要您执行任何操作

用户可以尝试使用
异步任务
而不是线程


这意味着线程已完成其工作,因此无法再使用。您需要创建一个新线程。如果您需要在GUI和另一个线程之间进行交互,那么可能值得考虑使用SwingWorkers而不是线程。SwingWorkers可以这样取消:@assylias,Swing在Android中没有任何意义。正如@Caner所说的,使用AsyncTask代替。它没有那么复杂。我经常在Android中使用线程。我还没见过线程最糟糕的事情。。。