网络下载 xUtilsLib
博客专区 > Jaume 的博客 > 博客详情
网络下载 xUtilsLib
Jaume 发表于1年前
网络下载 xUtilsLib
  • 发表于 1年前
  • 阅读 5
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 导入第三方的一个lib包实现下载功能的实现

首先要去网上下载一个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();
                }
            }
        });
    }

 

共有 人打赏支持
粉丝 4
博文 20
码字总数 5698
×
Jaume
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: