`
isiqi
  • 浏览: 16623610 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Android下使用Http协议实现多线程断点续传下载

阅读更多

0.使用多线程下载会提升文件下载的速度,那么多线程下载文件的过程是:

(1)首先获得下载文件的长度,然后设置本地文件的长度

HttpURLConnection.getContentLength();

RandomAccessFile file = new RandomAccessFile("QQWubiSetup.exe","rwd");

file.setLength(filesize);//设置本地文件的长度

(2)根据文件长度和线程数计算每条线程下载的数据长度和下载位置。

如:文件的长度为6M,线程数为3,那么,每条线程下载的数据长度为2M,每条线程开始下载的位置如下图所示。

例如10M大小,使用3个线程来下载,

线程下载的数据长度 (10%3 == 0 ? 10/3:10/3+1) ,第1,2个线程下载长度是4M,第三个线程下载长度为2M

下载开始位置:线程id*每条线程下载的数据长度 = ?

下载结束位置:(线程id+1)*每条线程下载的数据长度-1=?

(3)使用HttpRange头字段指定每条线程从文件的什么位置开始下载,下载到什么位置为止,

如:指定从文件的2M位置开始下载,下载到位置(4M-1byte)为止

代码如下:HttpURLConnection.setRequestProperty("Range", "bytes=2097152-4194303");

(4)保存文件,使用RandomAccessFile类指定每条线程从本地文件的什么位置开始写入数据。

RandomAccessFile threadfile = new RandomAccessFile("QQWubiSetup.exe ","rwd");

threadfile.seek(2097152);//从文件的什么位置开始写入数据

1.多线程下载的核心代码示例

2.多线程断点下载功能,这里把断点数据保存到数据库中:注意代码注释的理解

(0)主Activity,关键点使用Handler更新进度条与开启线程下载避免ANR

若不使用Handler却要立即更新进度条数据,可使用:

//resultView.invalidate(); UI线程中立即更新进度条方法

//resultView.postInvalidate(); 非UI线程中立即更新进度条方法

(1)下载类:

注意计算每条线程的下载长度与下载起始位置的方法

文件下载器,使用

(2)文件操作,断点数据库存储



分享到:
评论

相关推荐

    Android多线程断点续传下载

    在Android应用开发中,实现多线程断点续传下载是一项重要的技术,它涉及到网络编程、文件操作以及并发处理等多个方面。以下将详细介绍这个主题的相关知识点。 首先,我们需要理解“多线程”。在Android系统中,为了...

    Android中使用HTTP协议实现多线程断点下载案例

    在这种场景下,使用HTTP协议实现多线程断点下载是常见且高效的方法。本案例将详细介绍如何在Android中实现这一功能。 首先,了解HTTP协议在下载中的作用。HTTP(超文本传输协议)是用于在Web上传输数据的基础协议,...

    Android 实现多线程断点续传下载 源码

    在Android应用开发中,实现多线程断点续传下载是一项重要的技术,它能提高下载效率,节省用户时间,并提供良好的用户体验。以下是对这个主题的详细解析: **1. 多线程下载** 多线程下载是将一个大文件分成多个小块...

    Android多线程断点续传下载器

    在Android开发中,实现一个高效的多线程断点续传下载器是一项重要的技术挑战。这个项目专注于使用HTTP协议处理文件下载,并且具有自定义封装,旨在简化开发过程,提高用户体验。接下来,我们将深入探讨相关知识点。 ...

    Android平台下通过HTTP协议实现断点续传下载

    Andorid的HTTP协议多线程断点下载应用程序。直接使用单线程下载HTTP文件对我们来说是一件非常简单的事。那么,多线程断点需要什么功能? 1.多线程下载, 2.支持断点。 使用多线程的好处:使用多线程下载...

    Android基于HTTP协议的多线程断点下载器的实现源码

    我的Android进阶之旅------>Android基于HTTP协议的多线程断点下载器的实现的源代码,原文地址:http://blog.csdn.net/ouyang_peng/article/details/10125409

    多线程断点续传带进度条

    在Android开发中,实现“多线程断点续传带进度条”的功能是一项技术挑战,它涉及到网络编程、文件操作、多线程并发控制以及UI更新等多个方面。下面将详细阐述这一技术点的关键知识点。 首先,多线程是实现断点续传...

    Android 多线程断点续传下载 三

    在Android开发中,多线程断点续传下载是一项重要的技术,它允许用户在中断下载后,从上次停止的地方继续下载,提高了用户体验。本篇主要介绍Android实现这一功能的原理和步骤。 首先,理解断点续传的概念。断点续传...

    android多线程断点续传

    ### Android多线程断点续传技术解析 ...通过使用合适的工具和技术,如数据库来保存进度信息、HTTP Range请求来实现从特定位置开始下载等功能,可以有效地解决Android平台上多线程断点续传的相关问题。

    Android-单文件Http工具类支持GETPOST断点续传多线程断点续传

    总之,"Android-单文件Http工具类支持GETPOST断点续传多线程断点续传"是一个高效实用的工具,它简化了Android应用中的网络通信过程,特别是在处理大文件传输时,能够提供更好的性能和可靠性。开发者可以根据自己的...

    Android多线程断点续传下载+在线播放音乐.zip源码资源下载

    在Android开发中,实现多线程断点续传下载与在线播放音乐是两个重要的功能,它们涉及到了网络编程、文件处理、线程管理和多媒体播放等多个技术领域。下面将详细讲解这些知识点。 一、多线程下载 在Android中,为了...

    Android应用源码Android平台下通过HTTP协议实现断点续传下载.zip

    总的来说,这个压缩包提供了一个完整的Android断点续传下载实现,涵盖了网络请求、多线程、文件操作和进度监控等多个方面,是学习和实践Android下载功能的好材料。通过深入研究这些源代码,开发者可以更好地理解和...

    Android高级应用源码-Android多线程断点续传下载+在线播放音乐.rar

    在Android平台上,开发一款具有多线程断点续传下载功能和在线播放音乐的应用是一项挑战性的任务,涉及到多个核心技术和组件。以下是对这个项目源码的详细解析: 首先,我们来了解一下多线程断点续传下载。在Android...

    关于Android多线程断点续传下载

    在Android开发中,多线程断点续传下载是一项重要的技术,它允许应用程序在用户暂停或因网络问题中断下载后,从上次停止的地方继续下载,提高用户体验并节省资源。下面将详细阐述这一技术的实现原理、关键步骤以及...

    itcast传智播客android多线程断点续传下载代码

    本项目"itcast传智播客android多线程断点续传下载代码"提供了完整的实现方案,允许用户在中断下载后从上次停止的位置继续,提高了用户体验。以下是关于这个项目的关键知识点: 1. **多线程下载**: - 多线程下载是...

    Android004基于http协议多线程断点续传程序毕业课程源码设计

    这样即使手机断电了,当再次运行程序,重新读取数据库中保存的文件下载进度信息,从而实现了断点续传功能,数据的请求采用http协议,需要服务器支持http断点下载功能! cn.company.net.download.DownloadThread类...

    Android FTP 多线程断点续传下载\上传的实例

    总之,Android FTP多线程断点续传下载和上传涉及文件系统的操作、网络通信、多线程同步等多个技术点,需要理解FTP协议的基本原理,熟练使用FTPClient类,并处理好异常和状态管理,才能实现稳定可靠的文件传输功能。

    实现安卓文件断点续传

    在安卓平台上实现文件的断点续传功能是提高用户体验和优化网络资源利用的重要技术。断点续传允许用户在文件下载中断后,如因网络不稳定或设备意外关机,能够从上次停止的地方继续下载,而不需要重新开始。下面将详细...

    Android开发--多线程下载加断点续传

    1.多线程下载: 首先通过下载总线程数来划分文件的下载区域:利用int range = fileSize / threadCount;得到每一段下载量;每一段的位置是i * range到(i + 1) * rang - 1,注意最后一段的位置是到filesize - 1; ...

    Android应用源码之AndroidDownLoad(多线程断点续传).rar

    【标题】"Android应用源码之AndroidDownLoad(多线程断点续传)"是一个针对Android平台的开源项目,旨在实现高效、稳定的文件下载功能,特别是对于大文件,它支持多线程下载和断点续传。这个项目可以帮助开发者深入...

Global site tag (gtag.js) - Google Analytics