Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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 AsyncTask停止工作android_Java_Android_Multithreading_Asynchronous - Fatal编程技术网

Java AsyncTask停止工作android

Java AsyncTask停止工作android,java,android,multithreading,asynchronous,Java,Android,Multithreading,Asynchronous,我在我的应用程序中使用了大量的异步任务来进行搜索、解析等。我使用AsyncTask是因为我需要在前后更新ui,而且使用它非常简单 问题是当我可能使用新的线程,而旧的线程没有正常死亡,然后线程停止工作 如何避免此问题?可能是一种更好的方法,即遵循顺序过程?像这样的 在第一个异步任务的onPostExecute()中启动第二个异步任务。同样,在第二个异步任务的onPostexecute中启动第三个异步任务。 因此,您可以对其进行更多的控制,并且内存管理良好(即使在内存较少的设备中) 谢谢我想你可以用

我在我的应用程序中使用了大量的异步任务来进行搜索、解析等。我使用AsyncTask是因为我需要在前后更新ui,而且使用它非常简单

问题是当我可能使用新的线程,而旧的线程没有正常死亡,然后线程停止工作


如何避免此问题?

可能是一种更好的方法,即遵循顺序过程?像这样的

在第一个异步任务的onPostExecute()中启动第二个异步任务。同样,在第二个异步任务的onPostexecute中启动第三个异步任务。 因此,您可以对其进行更多的控制,并且内存管理良好(即使在内存较少的设备中)


谢谢

我想你可以用信号。我喜欢在一个线程中初始化闩锁,并在它即将完成任务时倒计时。在另一个线程中调用
wait()
,它将被阻止,直到前一个线程不调用
countDown()

线程的使用才真正向前迈进。我不做任何神奇的事情:)我在某处读到有一个应用程序的线程限制?我还可以看到,在调试模式下,丰富的线程结束并“死亡”线程可能发生在不同的活动中,并且并不总是相互关联。示例:1)解析文件2)更新ui。这个线程运行10次,它就会停止工作。这听起来是个不错的方法,但它能确保线程是死的吗?