欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android使用Xutils3进行断点下载的实例

程序员文章站 2022-11-22 22:16:25
使用工具:android studio 3.0 使用方法: 一:在build.gradle(module:app)中添加依赖 implementaion 'o...

使用工具: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的支持.