【问题标题】:AsyncTask stop working androidAsyncTask停止工作android
【发布时间】:2012-07-02 07:03:51
【问题描述】:

我在我的应用程序中使用大量 AsyncTask 进行搜索、解析等。我使用 AsyncTask 是因为我需要在之前和之后更新 ui,而且很容易使用它。

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

如何避免这个问题?

【问题讨论】:

  • 线程的使用非常直接。我没有做任何神奇的事情:) 我在某处读到应用程序有线程限制?我也可以在调试模式下看到线程丰富到它结束并“死”

标签: java android multithreading asynchronous


【解决方案1】:

按照顺序流程可能是更好的方法吗?像这样的

您在第一个的 onPostExecute() 中启动第二个异步任务。同样,您在第二个 onPostexecute 中启动第三个异步任务。 这样一来,您就可以更好地控制它,并且内存管理得很好(即使在内存较少的设备中)。

谢谢

【讨论】:

  • 线程可能发生在不同的活动中,并不总是相互关联。示例:1)解析文件2)更新ui。并执行此线程 10 次并停止工作
【解决方案2】:

我认为你可以使用信号。我喜欢使用CountDownLatch,您可以在其中初始化一个线程中的锁存器,并在即将完成任务时倒计时。,在其他线程调用await(),这将被阻塞,直到前一个线程不调用@ 987654323@.

【讨论】:

  • 这听起来是个好方法,但它是否可以确保线程已死?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多