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的支持.

标签:Android,utils3,下载
0
投稿

猜你喜欢

  • Android仿微信菜单(Menu)(使用C#和Java分别实现)

    2023-02-13 18:22:11
  • Winform窗体效果实例分析

    2023-12-12 04:44:08
  • Android实现朋友圈评论回复列表

    2022-12-16 03:40:36
  • C# InitializeComponent()方法案例详解

    2022-06-12 03:07:06
  • Android应用的多语言支持的实现方法

    2023-07-09 18:26:43
  • file.mkdir()、file.mkdirs()和file.createNewFile()的区别

    2023-12-18 10:18:52
  • IntelliJ IDEA2019实现Web项目创建示例

    2023-06-05 00:29:33
  • java使用动态代理来实现AOP(日志记录)的实例代码

    2023-11-28 22:34:45
  • Flutter实现矩形取色器的封装

    2023-06-19 04:08:47
  • Java 详解循环屏障CyclicBarrier如何实现多线程分段等待执行完成

    2022-02-16 04:50:49
  • Spring Security配置多个数据源并添加登录验证码的实例代码

    2022-11-19 13:49:26
  • Java基础之异常处理详解

    2021-07-14 03:03:49
  • C#统计C、C++及C#程序代码行数的方法

    2022-10-04 16:19:37
  • java web中图片验证码功能的简单实现方法

    2023-06-07 13:30:53
  • 详解spring cloud ouath2中的资源服务器

    2022-09-24 15:36:43
  • 教你快速搭建sona服务及idea使用sona的方法

    2023-11-20 05:22:53
  • Java annotation元注解原理实例解析

    2022-09-08 00:42:45
  • C#实现添加多行文本水印到Word文档

    2023-03-22 07:45:33
  • 盘点几种常见的java排序算法

    2023-09-17 10:13:10
  • Quartz.Net调度框架配置解析

    2021-10-13 01:35:02
  • asp之家 软件编程 m.aspxhome.com