在Android应用程序中同时下载多个文件

时间:2011-09-27 05:39:09

标签: android download

我正在编写一个Android应用程序,它允许用户浏览文件列表并下载它们。 对于每次下载,我创建了一个线程,然后使用HttpURLConnection实例下载文件(通过在while循环中读取连接)。

此方法适用于一个活动下载。但是当用户启动多个时,下载性能会急剧下降。大多数情况下,这些并行下载消耗了所有带宽,用户无法浏览文件(使用另一个HttpUrlConnection加载文件列表)。

有关改进下载系统的任何建议吗? 感谢。

P.S。:Google Chrome和Firefox等流行浏览器的方法看起来不错。谁知道它们是如何工作的?

2 个答案:

答案 0 :(得分:7)

唉,我不知道如何限制某些连接。但是,实际的方法是实现下载队列以控制同时下载的数量。在您的情况下,您可能希望一次只下载1件事。这可以通过几种不同的方式实现。

这是使用Handlers和Looper执行此操作的方法:http://mindtherobot.com/blog/159/android-guts-intro-to-loopers-and-handlers/

编辑1: 看看老鼠的评论。一次下载最多2个线程可能更聪明。

答案 1 :(得分:4)

您可能想要查看android SDK中的DownloadManager类。但它仅在上面或相同的api级别2.3可用。

http://developer.android.com/reference/android/app/DownloadManager.html

您可能希望看到的一些教程..

http://jaxenter.com/downloading-files-in-android.1-35572.html

http://www.vogella.de/blog/2011/06/14/android-downloadmanager-example/