Android 多线程断点续传

多线程和断点续传为什么要用他呢

多线程是为了提高下载效率,断点续传是因为你要下载一个大的文件,或其他原因终止了,下一次可以接着下,

断点续传怎么做

首先http协议里是支持断点续传的,http协议,头字段里有个Ranges字段,这个Ranges字段可以指定当前线程从什么位置下载到什么位置,这就为断点续传提供了可能性

多线程断点续传

如果要做多线程的,就是把一个任务分成多个任务来做,每个线程都做自己的任务,只要指定好开始的位置和结束的位置就可以了

我们在断点续传的时候,如果这次断了或者是暂停了,我们就把这个位置记录下来,记录在文件或数据库里,只要把线程的id和当前

线程做了多少工作,把他记录下来,下一次在继续工作的时候,就把这个位置放进Ranges字段里,就可以继续下载了

怎么保存

首先不能把任务的顺序打乱,要在内存中开辟一块空间来存储这个任务,这个是用多线程,每个线程都负责自己的任务,那么我们得有随机能访问磁盘的位置跳过去写数据,就可以用RandomAccessFile着个工具类,用的是seek 这个方法

比如:我第一个线程下载的是第一段的任务,第二段也在工作,开始写为位置都要过去,用seek过去,seek他的位置,这样写出来的文件才是完整的

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容