Android 多线程断点续传下载器_Ubuntu_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • Ubuntu

    当前位置:主页 > 服务器教程 > Ubuntu >

    Android 多线程断点续传下载器

    时间:2019-11-09|栏目:Ubuntu|点击:
  • 多线程断点下载流程图:



    Android 多线程断点续传下载器



    Android 多线程断点续传下载器


    Android多线程断点续传下载原理介绍:

    在下载的时候多个线程并发可以占用服务器端更多资源,从而加快下载速度

    手机端下载数据时难免会出现无信号断线、电量不足等情况,所以需要断点续传功能

    根据下载数据长度计算每个线程下载的数据位置,程序中开启多个线程并发下载

    在请求头中设置Range字段就可以获取指定位置的数据,例如:Range: bytes=100-200

    在下载过程中记录每个线程已拷贝数据的数量,如果下载中断,下次启动时从记录位置继续下载


    实例图:

    Android 多线程断点续传下载器


     一. 进度条使用<Progress>进行配置

    1.1 默认为圆形进度条,水平进度条需要配置style属性,android:attr/progressBarStyleHorizontal

    使用android.R.attr.progressBarStyleHorizontal作为样式

    1.2 当点击下载按钮时开启多线程下载,下载过程中修改进度条进度

    设置最大刻度:setMax()

          设置当前进度:setProgress()


    二. 断点续传

    2.1 断点续传需要在下载过程中记录每条线程的下载进度 (保存在 文件名.temp文件中 同迅雷中的.temp文件的功能)

    2.2 每次下载开始之前先读取数据库,查询是否有未完成的记录,有就继续下载,没有则创建新记录插入数据库

    2.3 在每次向文件中写入数据之后,在数据库中更新下载进度

    2.4 下载完成之后删除数据库中下载记录(文件名.temp文件)


     三. Handler传输数据

    3.1 主线程中创建的View只能在主线程中修改,其他线程只能通过和主线程通信,在主线程中改变View数据

    3.2 我们使用Handler可以处理这种需求

    3.3 主线程中创建Handler,重写handleMessage()方法

    3.4 新线程中使用Handler发送消息,主线程即可收到消息,并且执行handleMessage()方法

    上一篇:Android ANR异常及其解决方式

    栏    目:Ubuntu

    下一篇:Android 拍照上传及本地上传

    本文标题:Android 多线程断点续传下载器

    本文地址:http://www.jh-floor.com/fuwuqijiaocheng/Ubuntu/123497.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号