Android使用Xutils3进行断点下载的实例
作者:半斤水泥 发布时间:2021-08-13 21:59:27
使用工具:Android studio 3.0
使用方法:
一:在build.gradle(Module:app)中添加依赖
implementaion 'org.xutils:xutils:3.5.1'
二:单独创建一个MyApp类初始化xutils,类名可自定义
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
}
}
三:在AndroidManifest中添加权限并注册MyApp
//添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
//注册MyApp在<application>节点中添加android:name=".MyApp'
四:使用下载方法
public void download(View view){
String path=et.getText().toString().trim();
RequestParams params=new RequestParams(path);
params.setSaveFilePath(Environment.getExternalStorageDirectory()+"/myapp/");
params.setAutoRename(true);
x.http().post(params,new Callback.ProgressCallback<File>(){
@Override
public void onWaiting() {
}
@Override
public void onStarted() {
}
@Override
public void onLoading(long total, long current, boolean isDownloading) {
pd.setMax((int)total);
pd.setProgress((int)current);
}
@Override
public void onSuccess(File result) {
Log.i("TEST","下载完成");
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
知识点扩展:
xUtils3简介
xUtils 包含了orm, http(s), image, view注解, 但依然很轻量级(246K), 并且特性强大, 方便扩展:
稳定的基石: AbsTask和统一的回调接口Callback, 任何异常, 即使你的回调方法实现有异常都会进入onError, 任何情况下onFinished总会让你知道任务结束了.
基于高效稳定的orm工具, http模块得以更方便的实现cookie(支持domain, path, expiry等特性)和 缓存(支持Cache-Control, Last-Modified, ETag等特性)的支持.
有了强大的http及其下载缓存的支持, image模块的实现相当的简洁, 并且支持回收被view持有, 但被Mem Cache移除的图片, 减少页面回退时的闪烁.
view注解模块仅仅400多行代码却灵活的支持了各种View注入和事件绑定, 包括拥有多了方法的listener的支持.


猜你喜欢
- 本文向您展示了在 Flutter 中实现完美的验证码输入框几种不同方法。重点是什么?真实世界的 完美的验证码输入框或 PIN 输入 UI 通
- PowerMockito 测试静态方法假如有下面一个类DemoStatic,它里面定义了各种静态方法,这些静态方法可能是一些Utilitie
- 目录重入锁1. 实现重进入2. 公平与非公平获取锁的区别读写锁1. 接口示例2. 读写状态的设计3. 写锁的获取与释放4. 读锁的获取与释放
- 零、Gallery的使用回顾我们有时候在iPhone手机上或者Windows上面看到动态的图片,可以通过鼠标或者手指触摸来移动它,产生动态的
- 本文实例分析了Android中ListActivity用法。分享给大家供大家参考,具体如下:程序如下:import android.app.
- 实体类时间格式化java 实体类 时间格式化注解@JsonFormat(pattern = "yyyy-MM-dd HH:mm:s
- 用一个7 x 7的矩形表示迷宫,0和1分别表示的是通路和障碍。通过设计编写程序找到蓝色小球达到蓝色旗子的路线思路:构建一个迷宫(用二维数组)
- 一、项目背景1、介绍:最近在springboot项目中需要做一个阿里云OSS图片上传功能点,将OSS图片上传代码提取到公共工具类中,为了方便
- main.xml:<?xml version="1.0" encoding="utf-8"?&
- java内部类分为: 成员内部类、静态嵌套类、方法内部类、匿名内部类 。在java的世界里,提供了匿名内部类语法,用于帮助大家简化代码,本文
- 前言万事开头难,写文章也是,现在越来越不知道开头怎么写了,所以在前言中,简单介绍下RxJava吧,第一次听说还是以前做Android开发的时
- 在kotlin中可以不用使用findViewById来初始化控件,但是在给EditText赋值时使用editText.text = &quo
- 如何实现封装可以分为两步:第一步:将类的变量声明为private。第二步:提供公共set和get方法来修改和获取变量的值。代码展示publi
- 在阅读本文之前,大家可以先参考下《多模字符串匹配算法原理及Java实现代码》简介:本文是博主自身对AC自动机的原理的一些理解和看法,主要以举
- Java程序设计 图形用户界面【四】按钮组件 JButtonJButton组件表示一个普通的按钮JButton类常用方法方法作用public
- 默认spring只在发生未被捕获的runtimeexcetpion时才回滚。最笨的办法:代码级控制:TransactionAspectSup
- java @Value("${}")获取不到配置文件中值1、property.yml配置spring: ma
- C#学习笔记- 浅谈数组复制,排序,取段,元组using System;using System.Collections.Generic;n
- 方法一:实现Comparator接口,并重写compare方法实体类代码:import java.util.Comparator;/** *
- 什么是ContentType?我们知道浏览器可以处理各种各样的内容,比如:HTML、XML、JPG、Flash等等,那么浏览器是如何区分它们