2012-07-02 104 views
0

我在我的应用程序中使用大量的AsyncTask进行搜索,解析和更多。我使用AsyncTask,因为我需要更新ui前后,它很容易。AsyncTask停止工作android

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

我该如何避免这个问题?

+0

线程的使用是非常明智的。我不会做任何不可思议的:)我在某处读到应用程序有一个线程限制?另外,我可以在调试模式下看到线程收敛到“死” – gilush14

回答

1

可能是一个更好的方法,它遵循一个顺序过程?像这样的东西

你在第一个onPostExecute()中开始第二个asynctask。同样,你在第二个onPostexecute中开始第三个asynctask。 因此,您可以更好地控制它,并且内存管理良好(即使在内存较小的设备中)。

谢谢

+0

线程可能发生在不同的活动,并不总是相互关联。例如: 1)解析文件2)更新ui。并做这个线程10次,它停止工作 – gilush14

1

我想你可以使用信号。我喜欢使用CountDownLatch,你可以在一个线程中初始化你的锁存器,并在它即将完成任务时对其进行倒计数,在其他线程上调用await(),这将被阻塞,直到上一个线程不会调用countDown()

+0

这听起来像一个很好的方式,但它确保线程死亡? – gilush14