专栏名称: 郭霖
Android技术分享平台,每天都有优质技术文章推送。你还可以向公众号投稿,将自己总结的技术心得分享给大家。
目录
相关文章推荐
开发者全社区  ·  被三了 ·  昨天  
开发者全社区  ·  老公床后告诉我账上有10个亿 ·  昨天  
开发者全社区  ·  不准加班!美的强制18点20下班;大疆强制员 ... ·  2 天前  
开发者全社区  ·  吃瓜!华x公司渣男天花板 ·  2 天前  
开发者全社区  ·  55 ... ·  3 天前  
51好读  ›  专栏  ›  郭霖

使用OKHttp3实现下载(断点续传、显示进度)

郭霖  · 公众号  · android  · 2017-03-08 08:00

正文

今日科技快讯

近日,于国务院总理李克强在《政府工作报告》中明确提到全面取消国内长途和漫游费后,三大运营商中国移动、中国联通、中国电信同时宣布:今年10月1日起,将取消手机漫游费。至于为什么是10月,三大运营商皆表示需要时间来开发部署新的计费系统、制定新的资费方案等等。

作者简介

本篇来自 蓝牙鼠标 的投稿,结合 RxJava 以及 Lambda语法 实现了OKHttp下载文件。文中代码偏多,却不难理解,注释得很到位,希望能够对大家有所帮助。

蓝牙鼠标 的博客地址:

http://blog.csdn.net/cfy137000

准备阶段

OKHttp3 是如今非常流行的 Android 网络请求框架,那么如何利用 Android 实现断点续传呢,今天写了个 Demo 尝试了一下。

我们会用到 OKHttp3 来做网络请求,使用 RxJava 来实现线程的切换,并且开启 Java8 来启用 Lambda 表达式,毕竟 RxJava 实现线程切换非常方便,而且数据流的形式也非常舒服,同时 Lambda 和 RxJava 配合食用味道更佳。

打开我们的 app Module 下的 build.gradle,代码如下:

OKHttp 和 RxJava,RxAndroid 使用的都是最新的版本,并且配置开启了 Java8.

布局文件

接着开始书写布局文件:

其他都差不多,大概是这个样子的:

3个ProgressBar就是为了显示进度的,每个 ProgressBar 对应 2个Button,一个是开始下载,一个是暂停(取消)下载,这里需要说明的是,对下载来说暂停和取消没有什么区别,除非当取消的时候,会顺带把临时文件都删除了,在本例里是不区分他俩的.

Application

我们这里需要用到一些文件路径,有一个 全局Context 会比较方便, 而 Application 也是 Context 的子类,使用它的是最方便的,所以我们写一个类来继承:

可以看到,我们就是要获得一个全局的Context对象的

我们在 AndroidManifest 中注册一下我们的 Application,同时再把我们所需要的权限给上,我们只需要一个网络权限:

DownloadManager







请到「今天看啥」查看全文