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

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

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

[java] view plain copy print ?
  1. packagecom.icss.DBHelper;
  2. importandroid.content.Context;
  3. importandroid.database.sqlite.SQLiteDatabase;
  4. importandroid.database.sqlite.SQLiteOpenHelper;
  5. /**
  6. *建立一个数据库帮助类
  7. */
  8. publicclassDBHelperextendsSQLiteOpenHelper{
  9. //download.db-->数据库名
  10. publicDBHelper(Contextcontext){
  11. super(context,"download.db",null,1);
  12. }
  13. /**
  14. *在download.db数据库下创建一个download_info表存储下载信息
  15. */
  16. @Override
  17. publicvoidonCreate(SQLiteDatabasedb){
  18. db.execSQL("createtabledownload_info(_idintegerPRIMARYKEYAUTOINCREMENT,thread_idinteger,"
  19. +"start_posinteger,end_posinteger,compelete_sizeinteger,urlchar)");
  20. }
  21. @Override
  22. publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
  23. }
  24. }


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

[java] view plain copy print ?
  1. packagecom.icss.entity;
  2. publicclassLoadInfo{
  3. publicintfileSize;//文件大小
  4. privateintcomplete;//完成度
  5. privateStringurlstring;//下载器标识
  6. publicLoadInfo(){
  7. super();
  8. //TODOAuto-generatedconstructorstub
  9. }
  10. publicLoadInfo(intfileSize,intcomplete,Stringurlstring){
  11. super();
  12. this.fileSize=fileSize;
  13. this.complete=complete;
  14. this.urlstring=urlstring;
  15. }
  16. publicintgetFileSize(){
  17. returnfileSize;
  18. }
  19. publicvoidsetFileSize(intfileSize){
  20. this.fileSize=fileSize;
  21. }
  22. publicintgetComplete(){
  23. returncomplete;
  24. }
  25. publicvoidsetComplete(intcomplete){
  26. this.complete=complete;
  27. }
  28. publicStringgetUrlstring(){
  29. returnurlstring;
  30. }
  31. publicvoidsetUrlstring(Stringurlstring){
  32. this.urlstring=urlstring;
  33. }
  34. @Override
  35. publicStringtoString(){
  36. return"LoadInfo[fileSize="+fileSize+",complete="+complete
  37. +",urlstring="+urlstring+"]";
  38. }
  39. }


其他代码请下载DEMO

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

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Android之socket
  3. Android基于Ffmpeg 的软编软解的可视对讲
  4. Android(安卓)5.0 Camera系统源码分析(1):CameraService启动流程
  5. Android中将xml布局文件转化为View树的过程分析(上)
  6. Android(安卓)Phone进程启动过程详解
  7. Android(安卓)限制textview Edittext 只能输入电话号码和特定字
  8. Android(安卓)SurfaceView入门学习
  9. android xml解析生成探讨

随机推荐

  1. TextView文字横向滚动(跑马灯效果)
  2. 『转』Android在TQ2440开发板上的移植
  3. Android(安卓)应用开发特色
  4. Android(安卓)Framework面试题
  5. Android(安卓)Design Support Library(一)
  6. Android命令行启动程序的方法
  7. Android(安卓)D8 编译器 和 R8 工具
  8. 【Android(安卓)Training UI】创建自定义
  9. Android静态安全检测 -> Activity组件暴
  10. android google map v1 v2 v3 参考