【问题标题】:some kind of queue for asynctask某种异步任务队列
【发布时间】:2011-04-14 05:55:38
【问题描述】:

你好 我有带有文件列表的 ListView。我单击项目并开始在 asynctask 中下载此文件。 然后我单击另一个,它必须放入队列中,等待该文件并在完成后开始下载。我可以制作一些包含所有点击链接的类,并将其传递给 asynctask 下载部分?而不是以某种方式处理它们。但想知道这是正确的方法吗? 任何建议的链接?谢谢

【问题讨论】:

  • 队列很好,如果你不在乎它们什么时候完成,只要它们完成了。如果有些人需要比其他人更早完成,请使用优先队列。

标签: android queue android-asynctask


【解决方案1】:

如果您打算使用 AsyncTask,那么,是的,请按住您点击的链接并在适当的时候启动新任务。您应该注意,AsyncTask 就像 Android 应用程序中用于线程的“小刀”。

如果您确实需要管理一堆后台任务,并且听起来确实如此,请查看 ThreadPoolExecutor。你得到了很大的灵活性。 BlockingQueue ThreadPoolExecutor More Info Example

【讨论】:

    【解决方案2】:

    看看 HandlerThread 和 Handler 类。您需要一个处理程序将任务传递给后台 HandlerThread,另一个用于 UI 线程将结果传递回 UI

    【讨论】:

      【解决方案3】:

      尽管旧,但从 Google 获得:考虑一个 IntentService。

      【讨论】: