Android开发之多线程下载文件
来源:互联网 发布:mac百度云下载没反应 编辑:程序博客网 时间:2024/05/22 09:45
学习了两年多的java ,一直也没有接触过多线程并发的使用感觉自己真的很无知,知道学习了Android后才知道原理是啥,感觉自己也是很可笑。
知道原理就行了代码我就不往上贴了:
(1)首先通过HTTP请求获得下载文件的长度,通过httpURLconnecttion .contentLength()方法获取文件的大小,然后在本地的位置创建同样大小的新文件(使用RandomAccessFile类)。
(2)根据文件长度和线程数计算每条线程下载的数据长度和下载位置。
例如10M大小,使用3个线程来下载,
线程下载的数据长度 (10%3 == 0 ? 10/3:10/3+1) ,第1,2个线程下载长度是4M,第三个线程下载长度为2M
下载开始位置:线程id*每条线程下载的数据长度 = ?
下载结束位置:(线程id+1)*每条线程下载的数据长度-1=?
根椐 (10%3 == 0 ? 10/3:10/3+1) 计算出来blockSize (每个线程应该下载部分的大小)
int startPos = blockSize * (threadId - 1);//开始位置
int endPos = blockSize * threadId - 1;//结束位置
然后再计算每个线程应该会截取这个文件的不同位置进行下载,最后再组装成一个完整的文件
具体的代码http://blog.csdn.net/mad1989/article/details/38421465
0 0
- Android开发之多线程下载文件
- android开发之多线程断点下载
- Android开发之多线程下载(一)
- Android开发之多线程下载(二)
- android开发之多线程下载断点续传
- Android开发之多线程
- android开发笔记之多线程下载及断点续传
- Android 之多线程下载原理
- Android之多线程断点下载
- Android 之多线程下载原理
- HttpURLConnection方式文件下载之多线程下载
- Android中级篇之多线程下载
- Android实例demo18之多线程断点下载
- Android之多线程下载及断点续传
- Android 断点续传进阶之多线程下载
- Android开发之多线程处理、Handler详解
- Android开发之多线程处理、Handler详解
- Android开发之多线程处理、Handler详解
- 2016-5-26:实验室第一天
- iOS Archive 后进入other items,generic XCode Archive
- afn3.0
- swift基础之错误异常
- 第十三周项目3—形状类族的中的纯虚函数
- Android开发之多线程下载文件
- PHP register_shutdown_function函数的深入解析
- Contains Duplicate
- SCons 简介与安装
- 关于VS项目平台的x86,x64,Any CPU以及Debug和Release的区别
- 王学岗自定义控件(二)
- 解决DEDECMS Call to undefined function dede_htmlspecialchars()
- 绘图
- Dubbo高级篇--Dubbo负载均衡策略