歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android 下載文件(支持多任務,支持斷點.....)

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

日期:2017/3/1 10:27:27   编辑:Linux編程

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

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

源碼下載:

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

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

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

DBHelper.java

  1. package com.icss.DBHelper;
  2. import android.content.Context;
  3. import android.database.sqlite.SQLiteDatabase;
  4. import android.database.sqlite.SQLiteOpenHelper;
  5. /**
  6. * 建立一個數據庫幫助類
  7. */
  8. public class DBHelper extends SQLiteOpenHelper {
  9. // download.db-->數據庫名
  10. public DBHelper(Context context) {
  11. super(context, "download.db", null, 1);
  12. }
  13. /**
  14. * 在download.db數據庫下創建一個download_info表存儲下載信息www.linuxidc.com
  15. */
  16. @Override
  17. public void onCreate(SQLiteDatabase db) {
  18. db.execSQL("create table download_info(_id integer PRIMARY KEY AUTOINCREMENT, thread_id integer, "
  19. + "start_pos integer, end_pos integer, compelete_size integer,url char)");
  20. }
  21. @Override
  22. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  23. }
  24. }

在下載時,我們有進度條來顯示進度,怎麼確定進度條的進度,大小和起始位置呢?這裡我定義了一個LoadInfo類來記錄下載器詳細信息。代碼如下:

LoadInfo:

  1. package com.icss.entity;
  2. public class LoadInfo {
  3. public int fileSize;// 文件大小
  4. private int complete;// 完成度
  5. private String urlstring;// 下載器標識
  6. public LoadInfo() {
  7. super();
  8. // TODO Auto-generated constructor stub
  9. }
  10. public LoadInfo(int fileSize, int complete, String urlstring) {
  11. super();
  12. this.fileSize = fileSize;
  13. this.complete = complete;
  14. this.urlstring = urlstring;
  15. }
  16. public int getFileSize() {
  17. return fileSize;
  18. }
  19. public void setFileSize(int fileSize) {
  20. this.fileSize = fileSize;
  21. }
  22. public int getComplete() {
  23. return complete;
  24. }
  25. public void setComplete(int complete) {
  26. this.complete = complete;
  27. }
  28. public String getUrlstring() {
  29. return urlstring;
  30. }
  31. public void setUrlstring(String urlstring) {
  32. this.urlstring = urlstring;
  33. }
  34. @Override
  35. public String toString() {
  36. return "LoadInfo [fileSize=" + fileSize + ", complete=" + complete
  37. + ", urlstring=" + urlstring + "]";
  38. }
  39. }
Copyright © Linux教程網 All Rights Reserved