android 下载文件(支持多任务,支持断点.....)
16lz
2021-01-25
android 下载文件(支持多任务,支持断点.....)
在我们做开发的时候经常遇到的就是下载了,现在下载的方法有很多很多,那么怎么做到断点续传下载呢!很多人都头疼这个问题,如果我们没有很好的逻辑真不是很容易解决啊。我参考了一下前辈们的资料了整理了一个项目,能实现多个文件的同时下载。
是我创建数据库的一个SQLiteOpenHelper类。用来首次运行时创建数据库。
DBHelper.java
- packagecom.icss.DBHelper;
- importandroid.content.Context;
- importandroid.database.sqlite.SQLiteDatabase;
- importandroid.database.sqlite.SQLiteOpenHelper;
- /**
- *建立一个数据库帮助类
- */
- publicclassDBHelperextendsSQLiteOpenHelper{
- //download.db-->数据库名
- publicDBHelper(Contextcontext){
- super(context,"download.db",null,1);
- }
- /**
- *在download.db数据库下创建一个download_info表存储下载信息
- */
- @Override
- publicvoidonCreate(SQLiteDatabasedb){
- db.execSQL("createtabledownload_info(_idintegerPRIMARYKEYAUTOINCREMENT,thread_idinteger,"
- +"start_posinteger,end_posinteger,compelete_sizeinteger,urlchar)");
- }
- @Override
- publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
- }
- }
在下载时,我们有进度条来显示进度,怎么确定进度条的进度,大小和起始位置呢?这里我定义了一个LoadInfo类来记录下载器详细信息。代码如下:
LoadInfo:
[java] view plain copy print ?
- packagecom.icss.entity;
- publicclassLoadInfo{
- publicintfileSize;//文件大小
- privateintcomplete;//完成度
- privateStringurlstring;//下载器标识
- publicLoadInfo(){
- super();
- //TODOAuto-generatedconstructorstub
- }
- publicLoadInfo(intfileSize,intcomplete,Stringurlstring){
- super();
- this.fileSize=fileSize;
- this.complete=complete;
- this.urlstring=urlstring;
- }
- publicintgetFileSize(){
- returnfileSize;
- }
- publicvoidsetFileSize(intfileSize){
- this.fileSize=fileSize;
- }
- publicintgetComplete(){
- returncomplete;
- }
- publicvoidsetComplete(intcomplete){
- this.complete=complete;
- }
- publicStringgetUrlstring(){
- returnurlstring;
- }
- publicvoidsetUrlstring(Stringurlstring){
- this.urlstring=urlstring;
- }
- @Override
- publicStringtoString(){
- return"LoadInfo[fileSize="+fileSize+",complete="+complete
- +",urlstring="+urlstring+"]";
- }
- }
其他代码请下载DEMO
DEMO地址:http://download.csdn.net/detail/tt5267621/3756089
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- Android之socket
- Android基于Ffmpeg 的软编软解的可视对讲
- Android(安卓)5.0 Camera系统源码分析(1):CameraService启动流程
- Android中将xml布局文件转化为View树的过程分析(上)
- Android(安卓)Phone进程启动过程详解
- Android(安卓)限制textview Edittext 只能输入电话号码和特定字
- Android(安卓)SurfaceView入门学习
- android xml解析生成探讨