android断点续传

android 中断点续传理解

≡放荡痞女 提交于 2019-12-07 21:13:34
断点续传之前我们首先需要了解http协议 断点续传简单的说,就是接着上一次的已经下载好的位置接着下载文件,如何接着以前已经下载的位置接着下载,这是我们要解决的问题. http header详解参考 http://www.cnblogs.com/xyxiong/archive/2011/08/19/2145869.html 。 解释其中几个用到的属性: Range : 用于客户端到服务器端的请求,可通过该字段指定下载文件的某一段大小,及其单位。典型的格式如: Range: bytes=0-499 下载第0-499字节范围的内容 Range: bytes=500-999 下载第500-999字节范围的内容 Range: bytes=-500 下载最后500字节的内容 Range: bytes=500- 下载从第500字节开始到文件结束部分的内容 客户端请求: httpURLConnection.setRequestProperty("Range", "bytes="+12+"-"); 服务器响应: Accept-Ranges : 用于服务器端到客户端的应答,客户端通过该字段可以判断服务器是否支持断点续传 Accept-Ranges: bytes 表示支持以bytes为单位进行传输。 Accept-Ranges: none 表示不支持 Content-Ranges :

Android-断点续传下载

陌路散爱 提交于 2019-12-04 13:54:42
工作找完了,玩也玩完了,该好好学习了,最近我把《Java并发编程的艺术》这本书给读完了,对于并发编程以及线程池的使用还是不娴熟,我就在imooc上找到一个项目“ Android-Service系列之断点续传下载 “,这是我对这个项目在编写的时候记录。 涉及知识点 UI界面编写 数据库 Service 广播传递数据 多线程以及Handler 网络 这些应该是Android的基础,我就不累述了,到时候在代码中遇到了再进行解释。 这个项目主要的流程是: 一切的操作的开始是基于Activity的,但是我们的下载任务肯定是不能在Activity中进行的,因为假如我们的Activity切换成后台进程就有可能会被销毁(进程的优先级:前台,可见,服务,后台,空),所以我们将下载放在Service中是比较好的,但是Service和Activity一样是主线程,是不能进行数据的操作的,所以我们要利用到Thread或者是线程池,如果我们要可见下载进度的话,我们就需要通过广播的消息传递来更新UI上的进度,对于断点我们就需要实时将下载到的文件位置存储下来,所以我们利用数据库(稳定)存储进度。下载完成以后再将下载信息删除。 基础布局 这部分就不讲了,特别简单的一个布局 <?xml version="1.0" encoding="utf-8"?> < RelativeLayout xmlns: android