歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android 下載文件(支持多任務,支持斷點.....)

在我們做Android開發的時候經常遇到的就是下載了,現在下載的方法有很多很多,那麼怎麼做到斷點續傳下載呢!很多人都頭疼這個問題,如果我們沒有很好的邏輯真不是很容易解決啊。我參考了一下前輩們的資料了整理了一個項目,能實現多個文件的同時下載。

是我創建數據庫的一個SQLiteOpenHelper類。用來首次運行時創建數據庫。

源碼下載:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /2012年資料/3月/4/Android 下載文件(支持多任務,支持斷點.....) /

DBHelper.java

  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", null, 1);  
  14.         }  
  15.   
  16.         /** 
  17.          * 在download.db數據庫下創建一個download_info表存儲下載信息www.linuxidc.com 
  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:

  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. }  
Copyright © Linux教程網 All Rights Reserved