Android开发--多线程下载加断点续传

时间:2018-05-25 12:52:34
【文件属性】:

文件名称:Android开发--多线程下载加断点续传

文件大小:1.94MB

文件格式:RAR

更新时间:2018-05-25 12:52:34

多线程 下载 加 断点 续传

1.多线程下载: 首先通过下载总线程数来划分文件的下载区域:利用int range = fileSize / threadCount;得到每一段下载量;每一段的位置是i * range到(i + 1) * rang - 1,注意最后一段的位置是到filesize - 1; 通过Http协议的Range字段实现下载文件的分段; 通过Java类RandomAccessFile可以实现文件的随机访问,利用seek方法定位的文件的指定位置; 由HttpUrlConnection获取流来进行流的读写,实现文件的存储; 在下载过程中利用Handler来向外传递下载的信息。 2.断点续传: 对于每一个线程利用一个DownloadInfo类来保存下载的信息,每次在下载过程中向数据库更新信息(我也有想过只在下载暂停时进行更新,但那样的话我们的进程被杀掉时信息就无法保存下来)。在进行下载之前去访问数据库是否有记录存在,如果没有执行第一次下载的初始化,如果存在记录但下载文件不存在时,删掉数据库中的记录之后进行第一次下载的初始化,如果有记录且文件存在,则从数据库中取出信息。 实现的效果如图,自己封装的类提供了开始,暂停,删除,以及重新下载的方法。


【文件预览】:
Breakpoint_Download_File
----.project(860B)
----project.properties(609B)
----src()
--------com()
----AndroidManifest.xml(1KB)
----res()
--------drawable-ldpi()
--------drawable-hdpi()
--------values-v11()
--------menu()
--------drawable-mdpi()
--------layout()
--------values-sw600dp()
--------drawable-xxhdpi()
--------drawable-xhdpi()
--------values()
--------values-sw720dp-land()
--------values-v14()
----.settings()
--------org.eclipse.core.resources.prefs(113B)
----assets()
----gen()
--------com()
----libs()
--------android-support-v4.jar(543KB)
----.classpath(380B)
----proguard-project.txt(781B)
----ic_launcher-web.png(50KB)
----bin()
--------resources.ap_(278KB)
--------R.txt(29KB)
--------Breakpoint_Download_File.apk(650KB)
--------classes()
--------AndroidManifest.xml(1KB)
--------dexedLibs()
--------res()
--------classes.dex(1.21MB)

网友评论

  • 不错,正好用到了