我需要在我的应用程序上下载一个大文件(将近 2gb),我想知道最好的方法是什么,还有一些库可以帮助我。 首先我看了Android Asynchronous Http Library但我没有找到显示如何发布进度或开始、暂停下载的示例。然后我不知道我是应该使用这个库还是只使用标准的 http commons。 另一个问题是,我应该使用 service 吗?下载我的文件??
你们能给点提示,怎么做吗?
最佳答案
我看到你得到了一堆答案,但没有一个真正从整体的角度回答。
要下载 2k 或 2gb 文件,实际代码是相同的,使用某种类型的连接处理程序和某种类型的输入流和输出流,并且通常使用缓冲输入流包装输入流。为此,您可以在网络上找到无数的 Java 示例。
这里考虑到 Android 平台的诀窍在于,因为它是一个冗长的操作,所以您根本不应该在 Activity 生命周期内执行它。
说你有两个选择:
正如您所建议的,您可以创建一个服务,我建议您使用 IntentService 因为它似乎非常适合这种情况。 IntentService 自动跨越一个新线程,通过您将 URL 作为字符串传递的 Intent ,并让服务使用流等进行下载。
另一种可能效果很好但我个人从未使用过的方法是使用 DownloadManager自 Gingerbread 以来可用。调用
getSystemService(Context.DOWNLOAD_SERVICE)
和调用dwManag.enqueue(dwRequest);
应该不难
希望对您有所帮助。
关于android - 在 Android 中下载大文件的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15764034/