位置: 编程技术 - 正文
推荐整理分享Android 断点续传的实现(实现断点续传的工具软件),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:android 断点续传上传,android 断点续传上传,http1.1断点续传,android断点上传,android 断点续传上传,android断点上传,android 断点续传下载,android 断点续传下载,内容如对您有帮助,希望把文章链接给更多的朋友!
这两天用了下android5.1下载功能,简直鸡肋。无奈自己研究了半天的断点续传,总结一下。本文参考了慕课网XRay_Chen大神的视频,在此表示衷心的感谢!顺便说明,作者本身还只是个菜鸟,因此我希望能写一篇能让菜鸟看得懂的博客
基础知识因此我们可以从上面一句话得出这样一个结论,如果想要实现断点续传,必须保存断点。于是,我们可以定义这样一个普通类,用来保存文件的网络地址url,断点的位置finished(初始为0),以及结束位置end,简单代码如下
其次我们还需要定义一个普通的文件类,保存基本的文件信息,如文件大小,URL,名字等。
同样我们需要知道一些简单的http协议的内容
Header 作用 示例 Accept-Ranges 可以请求网页实体的一个或者多个子范围字段 Accept-Ranges: bytes翻译成大白话来讲就是,你可以通过设置Range来下载文件的一部分内容 注意:其返回的状态码不是(HttpURLConnection.HTTP_OK),而是(HttpURLConnection.HTTP_PARTIAL),因此在安卓中我们这样使用这个Header,代码实例
除了安卓的基本使用外,基础知识大概也就这么多.
页面布局大致就是如下的样子,相当的简单 一个TextView 一个ProgressBar,两个Button
实现过程定义普通的常量
Service部分我们的Activity实现的功能是向Service发送下载与暂停请求,Intent需要传递下载文件的对象,此时文件长度临时设置为0,当从网络获取到文件长度是再设置
然后通过按钮设置响应事件,向Service发送下载与暂停的请求
从Service的生命周期可以看出,第一次启动服务时,运行 onCreate()->onStartCommand(),再次启动时只会调用onStartCommand(),因此我们可以重写onStartCommand()
下载基本的文件信息,与网络有关,开线程下载
Service中定义handler开始下载
恩,现在Service已经实现.
DownloadTask部分主要实现文件的下载与暂停的控制,以及定时的发给主线程完成进度的消息.
下载/暂停部分这一部分涉及到断点类ThreadInfo的基本操作,由于中断,所以需要我们及时的把当前的断点保存起来,这里选择使用数据库,当然你也可以选择其他方式,在此不在赘述数据库的实现,只是提供一个基本的接口
下载/暂停的基本实现
下载线程私有类实现
广播部分发送广播
Activity部分Activity部分除了控制UI还有接受广播,更新下载进度
总结终于写完了,由于篇幅过长,在此,总结一下 大致过程
当然,楼主也提供了响应的源代码 github
年5月日 于
仿微信语音语音聊天 仿微信语音聊天,录音结束后显示在listview上,点击item可进行播放。一。效果图二、代码2.1activity_main.xml的编写LinearLayoutxmlns:android=
Android开发开源项目之-PullToRefresh源码分析 学习Android已经好几年了,但从没有认真写点什么,最近在一位同事的鼓动下有了写博客的想法。这是我第一篇博客,从第三方开源项目开始吧。首先我
android的SDK离线安装详细教程
标签: 实现断点续传的工具软件
本文链接地址:https://www.jiuchutong.com/biancheng/386088.html 转载请保留说明!上一篇:Android自定义系列(2)——拟物化类弹窗式视频播放窗口(Android自定义系统服务框架)
友情链接: 武汉网站建设