android 下载文件(支持多任务,支持断点.....)

android 下载文件(支持多任务,支持断点.....)

      在我们做开发的时候经常遇到的就是下载了,现在下载的方法有很多很多,那么怎么做到断点续传下载呢!很多人都头疼这个问题,如果我们没有很好的逻辑真不是很容易解决啊。我参考了一下前辈们的资料了整理了一个项目,能实现多个文件的同时下载。

 

是我创建数据库的一个SQLiteOpenHelper类。用来首次运行时创建数据库。
DBHelper.java 

[java]  view plain copy print ?
  1. package com.icss.DBHelper;  
  2.   
  3. import android.content.Context;  
  4. import android.database.sqlite.SQLiteDatabase;  
  5. import android.database.sqlite.SQLiteOpenHelper;  
  6.   
  7. /** 
  8. * 建立一个数据库帮助类 
  9. */  
  10. public class DBHelper extends SQLiteOpenHelper {  
  11.         // download.db-->数据库名  
  12.         public DBHelper(Context context) {  
  13.                 super(context, "download.db"null1);  
  14.         }  
  15.   
  16.         /** 
  17.          * 在download.db数据库下创建一个download_info表存储下载信息 
  18.          */  
  19.         @Override  
  20.         public void onCreate(SQLiteDatabase db) {  
  21.                 db.execSQL("create table download_info(_id integer PRIMARY KEY AUTOINCREMENT, thread_id integer, "  
  22.                                 + "start_pos integer, end_pos integer, compelete_size integer,url char)");  
  23.         }  
  24.   
  25.         @Override  
  26.         public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  27.   
  28.         }  
  29.   
  30. }  


 

在下载时,我们有进度条来显示进度,怎么确定进度条的进度,大小和起始位置呢?这里我定义了一个LoadInfo类来记录下载器详细信息。代码如下:
LoadInfo:

 

[java]  view plain copy print ?
  1. package com.icss.entity;  
  2.   
  3. public class LoadInfo {  
  4.   
  5.         public int fileSize;// 文件大小  
  6.         private int complete;// 完成度  
  7.         private String urlstring;// 下载器标识  
  8.         public LoadInfo() {  
  9.                 super();  
  10.                 // TODO Auto-generated constructor stub  
  11.         }  
  12.         public LoadInfo(int fileSize, int complete, String urlstring) {  
  13.                 super();  
  14.                 this.fileSize = fileSize;  
  15.                 this.complete = complete;  
  16.                 this.urlstring = urlstring;  
  17.         }  
  18.         public int getFileSize() {  
  19.                 return fileSize;  
  20.         }  
  21.         public void setFileSize(int fileSize) {  
  22.                 this.fileSize = fileSize;  
  23.         }  
  24.         public int getComplete() {  
  25.                 return complete;  
  26.         }  
  27.         public void setComplete(int complete) {  
  28.                 this.complete = complete;  
  29.         }  
  30.         public String getUrlstring() {  
  31.                 return urlstring;  
  32.         }  
  33.         public void setUrlstring(String urlstring) {  
  34.                 this.urlstring = urlstring;  
  35.         }  
  36.         @Override  
  37.             public String toString() {  
  38.          return "LoadInfo [fileSize=" + fileSize + ", complete=" + complete  
  39.                          + ", urlstring=" + urlstring + "]";  
  40.      }  
  41.   
  42.   
  43. }  


 

 

其他代码请下载DEMO

 

DEMO地址:http://download.csdn.net/detail/tt5267621/3756089

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值