文章来源:http://www.blogjava.net/changcheng/archive/2010/03/04/314515.html
我们编写的是Andorid 的HTTP 多线程断点下载应用程序。因为之间我们学习的学习积累,直接使用单线程下载HTTP 文件对我们来说是一件非常简单的事。那么,多线程断点下载的难点在哪里?1. 多线程下载,2. 支持断点。
多线程下载:
如何才能从文件的指定位置处开始下载文件?(比如从50MB开始)这一点我们可以通过HTTP请求信息头来设置,还记得HTTP请求信息头的“Range”属性吗?
断点:
首要问题(多线程下载)已经被我们解决了,支持断点下载想必大家也已经想到了。就是将下载的进度保存到文件中,但在Android中却不能这么做。通过老黎的试验,在Android平台中,我们需要向文件中写出下载的文件数据,还需要向另一个文件中写出下载进度,这样会出错。这样会导致有一个文件的内容没有被写出。所以我们就不能以文件的方式来保存下载进度,但可以通过数据库的方式保存下载进度。
这两大问题我们已经有了解决思路,那么就开始动手编写吧!
1. 创建Android工程
Project name:MulThreadDownloader
BuildTarget:Android2.1
Application name:多线程断点下载
Package name:com.changcheng.download
Create Activity:MulThreadDownloader
Min SDK Version:7
2.AndroidManifest.xml
3.strings.xml
4.main.xml
5.MulThreadDownloader
6.FileDownloader
7.DownloadProgressListener
8.FileService
9.DownloadThread
10.DBOpenHelper