xutils开源框架的使用(httputils支持多线程断点续传)

ahu-lichang ahu-lichang     2022-08-25     336

关键词:

  •  XUtils项目下载地址:https://github.com/wyouflf/xUtils
  • XUtils中包含的四大模块:

       1、DbUtils模块

       2、ViewUtils模块

       3、HttpUtils模块:

        • 支持同步,异步方式的请求;
        • 支持大文件上传,上传大文件不会oom;
        • 支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;
        • 下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;
        • 返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。

       4、BitmapUtils模块

  • 这里只是运行HttpUtils模块来进行多线程下载因为该模块支持断点续传,用起来非常方便!

  布局文件:

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:id="@+id/activity_main"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     android:paddingBottom="@dimen/activity_vertical_margin"
 8     android:paddingLeft="@dimen/activity_horizontal_margin"
 9     android:paddingRight="@dimen/activity_horizontal_margin"
10     android:paddingTop="@dimen/activity_vertical_margin"
11     tools:context="com.ahu.lichang.httputils_multithreaddownload.MainActivity"
12     android:orientation="vertical">
13     <Button
14         android:text="HttpUtils多线程下载"
15         android:onClick="download"
16         android:layout_width="wrap_content"
17         android:layout_height="wrap_content" />
18     <TextView
19         android:id="@+id/tv_failure"
20         android:layout_width="wrap_content"
21         android:layout_height="wrap_content"
22         android:hint="下载失败提示" />
23     <ProgressBar
24         android:id="@+id/pb"
25         style="@android:style/Widget.ProgressBar.Horizontal"
26         android:layout_width="match_parent"
27         android:layout_height="wrap_content" />
28     <TextView
29         android:id="@+id/tv_progress"
30         android:text="下载进度"
31         android:layout_width="wrap_content"
32         android:layout_height="wrap_content" />
33 </LinearLayout>
View Code

 

  MainActivity:

 1 package com.ahu.lichang.httputils_multithreaddownload;
 2 
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.view.View;
 6 import android.widget.ProgressBar;
 7 import android.widget.TextView;
 8 import android.widget.Toast;
 9 
10 import com.lidroid.xutils.HttpUtils;
11 import com.lidroid.xutils.exception.HttpException;
12 import com.lidroid.xutils.http.ResponseInfo;
13 import com.lidroid.xutils.http.callback.RequestCallBack;
14 
15 import java.io.File;
16 
17 public class MainActivity extends Activity {
18     private TextView tv_failure;
19     private TextView tv_progress;
20     private ProgressBar pb;
21     @Override
22     protected void onCreate(Bundle savedInstanceState) {
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.activity_main);
25         tv_failure = (TextView) findViewById(R.id.tv_failure);
26         tv_progress = (TextView) findViewById(R.id.tv_progress);
27         pb = (ProgressBar) findViewById(R.id.pb);
28     }
29 
30     public void download(View view){
31         String path = "http://172.23.13.179:8080/QQPlayer.exe";
32         HttpUtils httpUtils = new HttpUtils();
33         httpUtils.download(path,//下载地址
34                 "storage/sdcard/QQPlayer.exe",//下载的数据保存的路径和文件名
35                 true,//是否开启断点续传
36                 true,//如果服务器响应头中包含了文件名,那么下载完毕后自动重命名
37                 new RequestCallBack<File>() {//侦听下载状态
38                     @Override
39                     public void onSuccess(ResponseInfo<File> responseInfo) {
40                         Toast.makeText(MainActivity.this,responseInfo.result.getPath(),Toast.LENGTH_SHORT).show();
41                     }
42 
43                     @Override
44                     public void onFailure(HttpException e, String s) {
45                         tv_failure.setText(s);
46                     }
47 
48                     @Override
49                     public void onLoading(long total, long current, boolean isUploading) {
50                         super.onLoading(total, current, isUploading);
51                         pb.setMax((int) total);
52                         pb.setProgress((int) current);
53                         tv_progress.setText(current * 100 / total + "%");
54                     }
55                 }
56         );
57     }
58 }
View Code

  权限:

1     <!--XUtils要添加两个权限-->
2     <uses-permission android:name="android.permission.INTERNET"/>
3     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

  运行结果:

 

 

新闻client案例开发

...ger),android网络通信(http通信)。开源组件(xutils框架-HttpUtils模块、xutils框架-BitmapUtils模块),开源框架(library)。所需jar包:xUtils、gson、android-supp 查看详情

xutils3的简单介绍

...介xUtils是基于Afinal开发的目前功能比较完善的一个Android开源框架,最近又发布了xUtil3.0,在增加新功能的同时又提高了框架的性能。1.xUtils包含了很多实用的android工具;xUtils支持超大文件(超过2G)上传,更全面的http请求协议支持(... 查看详情

xutils使用过程

1,导入xutils的jar包 2,添加xutils需要使用的权限 <uses-permissionandroid:name="android.permission.INTERNET"/> <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 3,获取HttpUtils对象,下载 查看详情

自定义xutils框架

xUtils是基于Afinal开发的目前功能比较完善的一个Android开源框架,最近又发布了xUtil3.0,在增加新功能的同时又提高了框架的性能。它的功能很强大,但是有时候我们只需要其中的一些功能,如果把整个xUtils引进去没什么必要。&nb... 查看详情

网络解析xutils

/***使用xUtils实现GET请求**/privatevoidgetExpressionForGet(){//xUtils基于HttpClient的HttpUtilshttpUtils=newHttpUtils(5000);httpUtils.send(HttpRequest.HttpMethod.GET,"http://v.juhe.cn/WNXG/city?key=3c7900adf363 查看详情

xutils中的bitmaputils

 韩梦飞沙 韩亚飞 [email protected] yue31313 han_meng_fei_shaxUtils框架,包括BitmapUtils、DbUtils、ViewUtils和HttpUtils四大模块,这四大模块都是项目中比较常用的。  BitmapUtils内存缓存的核心类LruMemoryCache,LruMe 查看详情

xutils===xutils3框架的基本使用方法

...例都是基于XUtils3的API语法进行的演示。相信大家对这个框架也都了解过,下面简单介绍下XUtils3的一些基本知识。XUtils3一共有4大功能:注解模块,网络模块,图片加载模块,数据库模块。使用XUtils只需要在lib 查看详情

开源框架概述

为什么要使用开源框架1.提高开发速度2.提高开发质量选择开源框架的原则1.聚合性框架一定要放弃.例如Afinal,xUtils  *大而全的框架容易导致牵一发而动全身.可读性差,耦合高,难扩展.2.lastcommit超过一年以上或者issues一大堆没有... 查看详情

进展xutils3框架的使用

刚刚SLP迎来了一个飞跃——成功地使用XUtils3框架从LL资源网站上拉取LIVE相关信息并显示成列表。效果如下:  查看详情

android开发一般都使用啥框架

千夏软件(www.qianxx.com)认为,目前框架使用的主要都是开源框架,都可以在github上找到:1、volley,项目2、android-async-http项目3、Afinal框架项目4、xUtils框架项目5、ThinkAndroid项目6、LoonAndroid项目主要有以下模块:(1)自动注入框架... 查看详情

xutils3框架的基本用法

...例都是基于XUtils3的API语法进行的演示。相信大家对这个框架也都了解过,以下简介下XUtils3的一些基本知识。XUtils3一共同拥有4大功能:注解模块,网络模块。图片载入模块。数据库模块。使用X 查看详情

xutilsbitmaputils改造以加入drawable支持

...持=== #XUtils简单介绍XUtils是一套少有的早期国产安卓框架,其源于AFinal,文件夹结构也与之相似,可是代码却进行了大量的重构,使得XUtils更加现代,攻克了AFinal的OOM等问题.眼下XUtils已经支持API8(android2.2)至API21(android5.0.x).XUtils主要... 查看详情

xutils,okhttp,volley,retrofit对比

Xutils这个框架非常全面,可以进行网络请求,可以进行图片加载处理,可以数据储存,还可以对view进行注解,使用这个框架非常方便,但是缺点也是非常明显的,使用这个项目,会导致项目对这个框架依赖非常的严重,一旦这... 查看详情

xutils3框架的基本使用方法(代码片段)

...例都是基于XUtils3的API语法进行的演示。相信大家对这个框架也都了解过,下面简单介绍下XUtils3的一些基本知识。XUtils3一共有4大功能:注解模块,网络模块,图片加载模块,数据库模块。使用XUtils只需要在libs... 查看详情

android常用的框架都有哪些

...ndroid目前还没有那样成熟的框架可以使用。只能说有一些开源项目较好地解决了部分方面的问题,例如:(1)EventBus:解决了模块之间消息传递解耦合的问题(2)picasso:解决异步加载图片和缓存图片的问题(3)dagger:一个依赖... 查看详情

xutils

//HttpUtils实例化对象   HttpUtilshttp=newHttpUtils();      /*             *发送请求send(HttpMethodm 查看详情

有哪些android的开源界面库

比较火爆的Android开源库有以下:1、volley主要有以下模块:(1)JSON,图像等的异步下载;(2)网络请求的排序(scheduling)(3)网络请求的优先级处理(4)缓存(5)多级别取消请求(6)和Activity和生命周期的联动(Activity结束时同时取消所有网... 查看详情

android开发技巧之使用自定义注解

前言 一些优秀的开源框架如比较早的xUtils网络加载框架及现在最新版本的greenDao3.XORM框架支持注解,注解的使用可以使得我们的代码架构变得更加清晰,同时也更能体现出面向对象语言的继承的魅力。我们在Android开发... 查看详情