【问题标题】:Concurrent Downloads in an Android App (in Activity)Android 应用程序中的并发下载(在活动中)
【发布时间】:2012-11-12 23:47:11
【问题描述】:

我是一名新的 Android 开发人员,我正在尝试在我的应用中执行以下操作。

给定一个 URL,我想获取该 URL 的 html,解析 HTML 源中的图像并同时下载它们(可能是 2-3 个并行线程)。我正在我的活动中的异步任务中执行实际的 HTML/URL 下载。之后,我解析 HTML 并获得图像 url 列表。此时,让多个线程循环遍历这些图像 url 并下载它们的最佳方法是什么?请提出建议或提供示例。我尝试寻找具有多个线程和“Looper”的阻塞队列,但仍然对如何实现这一点感到困惑。

谢谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      您可能会使用AsyncTask,但请避免使用 Java 线程,因为 Android 操作系统可能会在您的应用没有当前可见的 Activity 时立即终止它们。还要避免一次启动多个任务,因为这通常不会使下载过程更快。而是将您的网址放在某种任务队列中

      【讨论】:

      • 如果 Activity 被隐藏,Java Threads 不会以任何方式自动终止。它们的行为方式与AsyncTask 相同,特别是因为AsyncTask 只是底层的Thread(或者更严格地说,FutureTaskThreadPoolExecutor 执行,参见sourcecodes)。我还会考虑测试 2 个或 3 个并行下载任务是否可以加快速度。这并非不可能,特别是如果您从多个服务器下载。
      猜你喜欢
      • 2019-10-15
      • 2021-09-04
      • 1970-01-01
      • 2017-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多