文档章节

网络下载 xUtilsLib

Jaume
 Jaume
发布于 2016/07/28 09:55
字数 412
阅读 7
收藏 1

首先要去网上下载一个xUtils的一个lib包,网络上都有方便下载

导入后需要填写两个权限

一个网络权限:INTERNET,一个写内存权限:WRITE_EXTERNAL_STORAGE

我提供了一个APK的下载地址:http://ruishua-10007319.file.myqcloud.com/RsApps/ruishua.apk

定义变量为:apkUrl

首先要定义一个HttpUtils对象  httpUtils = new HttpUtils();

在定义一个HttpHandler<File> ,因为httpUtils的download方法返回的是一个 HttpHandler<File>

HttpHandler = httpUtils.download(apkUrl, "/mnt/sdcard/test.apk", new RequestCallBack<File>() {

            //下载更新方法
            @Override
            public void onLoading(long total, long current, boolean isUploading) {
                mTotal = total;
                //计算下载文件的大小
                String totalSize = Formatter.formatFileSize(MainActivity.this, total);
                //计算已下载的文件大小
                String currentSize = Formatter.formatFileSize(MainActivity.this, current);
                //显示当前的下载
                my_TextView.setText(currentSize+"/"+totalSize);
                //就算百分比,更新进度条
                int person = (int) (current*100/total);
                my_ProgressBar.setProgress(person);
            }

            //下载完成的方法
            @Override
            public void onSuccess(ResponseInfo<File> responseInfo) {
                //获取下载的文件
                File file = responseInfo.result;
                //获取下载的文件的大小
                long length = file.length();
                //判断下载是否完成
                if(length>=mTotal){
                    my_TextView.setText("下载完成");
                }
            }

            //下载失败的方法
            @Override
            public void onFailure(HttpException error, String msg) {
                //下载失败提醒
                my_TextView.setText("下载失败");
            }

        });

之前我定义一个TextView来显示下载的文字进度显示

通过单机事件来进行暂停和续传

private void initTime() {
        my_TextView.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                //判断之前是否已经停止
                //如果正在下载,则停止
                //如果停止,则继续下载
                if(HttpHandler.isCancelled()){
                    //这个方法就是上边代码的实现
                    stateDowload();
                //把上边的代码放到一个方法就可以方便调用了
                }else{
                    //暂停下载
                    HttpHandler.cancel();
                }
            }
        });
    }

 

© 著作权归作者所有

Jaume
粉丝 3
博文 20
码字总数 5698
作品 0
昌平
程序员
私信 提问
关于盗版和侵权,求解

公司打算上市,现在正在消除盗版软件问题 究竟怎样才算侵权, 用 vs2010(网络下载)+ mssql 2008(网络下载) 这算是侵权了 用 vs2010(网络下载)+ mysql(网络下载,免费版本) 这算是吗 ...

iThinkPad
2011/08/26
469
5
中美四地网速实测:香港固网最快内地手机网速慢

网速与网络资费,一直是社会各界热点话题。相关机构近日发布统计显示,中国大陆网速平均速率为1.15M,香港为10.5M,亚太或全球平均速率为 4.64M;中国大陆排全球第80名。另一项调查则指出“中...

oschina
2013/08/13
578
6
软件架构杂谈(四) --- P2P

浅谈软件架构(四) —— P2P ----cnyinlinux 本文将讨论一种特殊的软件架构——P2P网络。这与时下正流行的O2O有些神似,不过二者没有联系,也不是同类物种。O2O指的是互联网虚拟世界(Online)与...

cnyinlinux
2015/06/09
1K
0
NSURLSession详解

<1> NSURLSession 简介: { NSURLSession 是 iOS 7.0 之后推出的网络解决方案!用于替代 NSURLConnection, 针对下载/上传等复杂的网络操作提供了专门的解决方案! NSURLSession 使用更加简单/方...

就不穿小内
2015/12/11
143
0
MQZHot/DaisyNet

DaisyNet 对Alamofire与Cache的封装实现对网络数据的缓存,可以存储JSON,String,Data,接口简单明了. 依赖Alamofire和Cache 如有问题,欢迎提出,不足之处,欢迎纠正,欢迎star ✨✨✨✨✨...

MQZHot
2017/10/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
935
11
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
15
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部