android - 在 Android 中下载大文件的最佳方式?

标签 android

我需要在我的应用程序上下载一个大文件(将近 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/

相关文章:

android - 获取单行状态

java - 是否可以在 Android View 上查询正在运行/待处理的动画?

android - 在android中将相机预览拉伸(stretch)到全屏

Android按钮不响应点击事件/

java - 将对象或类链接到 GoogleMap 标记

java - 如何在 JSON 对象中获取 JSON 数组?

Android 4.3 crop gallery resultCode 取消

android - 根据项目中的 TextView 更改 ListView 行颜色

android - 使用 Crashlytics 发送自定义报告?

android - 在屏幕底部设置布局,其余部分填充父级