本文主要介绍开源项目Aria的使用。

先在项目里的build 中配置
compile 'com.arialyy.aria:Aria:3.1.1' //下载 开始下载
Aria.download(this)
.load(DOWNLOAD_URL)//下载的url地址
.setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/test.apk")//下载保存的路径
.start();
暂停下载
Aria.download(this).load(DOWNLOAD_URL).pause();

取消下载
Aria.download(this).load(DOWNLOAD_URL).cancel();
在Aria的下载模块中,下载链接为下载任务的唯一标识符,控制一个任务的开始、暂停、恢复、取消下载等操作都需要DOWNLOAD_URL支持。
另外,在Aira中,可以调用start()方法开始下载或恢复下载。
为了方便起见,你也可以调用Aria.download(this).load(DOWNLOAD_URL).resume();实现恢复下载。

下载事件的获取

在上文中,我们已经实现在android中下载文件的操作,是的,使用Aria,一行代码你就能实现复杂的断点续传功能。
除了正常的文件需求外,有的时候,我们还需要获取文件的下载状态用来更新界面的显示。
Aria中,使用Aria的事件监听器,你能很容易的获取到你想要的很多事件,如:

    • 暂停、恢复、完成、失败、取消下载等状态
    • 一句代码获取当前任务的下载速度
    • 一句代码获取当前任务的进度的百分比
    • 一句代码获取当前任务的的文件大小

监听事件
Aria.download(getApplication()).addSchedulerListener(new MySchedulerListener());//给Aria设置监听事件
private class MySchedulerListener extends Aria.DownloadSchedulerListener {

  @Override public void onTaskStart(DownloadTask task) {
mSize.setText(task.getConvertFileSize());
} @Override public void onTaskStop(DownloadTask task) {
Toast.makeText(MainActivity.this, "停止下载", Toast.LENGTH_SHORT).show();
} @Override public void onTaskCancel(DownloadTask task) {
Toast.makeText(MainActivity.this, "取消下载", Toast.LENGTH_SHORT).show();
} @Override public void onTaskFail(DownloadTask task) {
Toast.makeText(MainActivity.this, "下载失败", Toast.LENGTH_SHORT).show();
} @Override public void onTaskComplete(DownloadTask task) {
Toast.makeText(MainActivity.this, "下载完成", Toast.LENGTH_SHORT).show();
} @Override public void onTaskRunning(DownloadTask task) {
//使用转换单位后的速度,需要在aria_config.xml配置文件中将单位转换开关打开
//https://github.com/AriaLyy/Aria#配置文件设置参数
mSpeed.setText(task.getConvertSpeed());
mPb.setProgress(task.getPercent());
}
}
最后 附上 Github地址:https://github.com/AriaLyy/Aria

第三方下载控件 用起来还是不错的偶!Aria的更多相关文章

  1. Android下拉涮新第三方通用控件

    Android下拉涮新第三方通用控件https://github.com/chrisbanes/Android-PullToRefresh Pull To Refresh Views for Andr ...

  2. 第三方分页控件aspnetPager出现问题解决方法

    问题描述: 今天在打开以前的项目使用vs2013打开后并且生成解决方案的时候发现报错了.经过检查发现是由于第三方分页控件aspnetPager在页面上不能引用到了. 解决方法: 1. 首先将AspNe ...

  3. C#调用第三方ocx控件 (winform /aspx)

    C#调用第三方ocx控件   1..net环境在工具箱上点右键,选择自定义工具箱,然后选择你需要的COM或者OCX控件就可以了. 2.在自定义工具箱中加入相应的控件,设置id,在客户端脚本中直接引用它 ...

  4. (转)WEB第三方打印控件[ASP.NET常用工具]

    本文转载自:http://blog.csdn.net/chz_cslg/article/details/25415347 在B/S模式开发中,打印是个很大的困扰.无论是采用页面直接输出或者引用WORD ...

  5. 学习笔记13_第三方js控件&EasyUI使用

    第三方UI包使用思路: 1.先映入各种JS包,包含JS版本包,第三方CSS包,第三方主JS包,第三方语言包. 2.确定要做什么,是对话框还是表格.3.根据Demo和目的,在<body>内, ...

  6. php文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个php文件夹上传下载的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是实例的部分脚本文件 这里我先 ...

  7. asp.net文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在.net环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是此例中各种脚本文件 ...

  8. java文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在JAVA.MyEclipse环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下 ...

  9. asp.net 第三方UI控件 Telerik KendoUI 之 TreeVIew 的用法记录

    一.前台显示 备注:一次性取出所有节点 function loadTreeData() { $.ajax({ type: 'POST', url: '@(Html.UrlHref("Scri ...

随机推荐

  1. hdu多校第六场1005 (hdu6638) Snowy Smilel 线段树/区间最大和

    题意: 给定一个矩阵,矩阵上有若干点,每个点有正或负的权值,找一个方框框住一些点使得方框中点权值最大. 题解: 离散化横纵坐标,容易将这个问题转化为在矩阵上求最大和子矩阵的问题. 普通的n*n的矩阵的 ...

  2. Codeforces768B-Code For 1-类似线段树-枚举+单点更新or区间更新

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门  原题目描述在最下面.  每次把\(n\ ...

  3. Spring-Security (补充)

    一.配置静态资源过滤 直接在xml中配置即可 <!-- 配置静态资源过滤 --> <security:http security="none" pattern=& ...

  4. Centos 6 & Centos 7安装rabbitmq3.6.15(单节点)

    系统准备 安装 erlang 语言环境 安装rabbitmq 配置网页插件 配置访问账号密码和权限 系统准备 centos6.5 与 centos7 都可以 ###安装依赖文件 yum -y inst ...

  5. [转]C++ 使用Makefile文件

    //*********list class.h**********class tdate {private:int month;int day;int year;public:tdate();tdat ...

  6. AsyncCallback IAsyncResult

    using System; using System.Threading; using System.Collections.Generic; using System.Windows.Forms; ...

  7. mybatis浅显认识

    mybatis主配置文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configu ...

  8. Java oop第05章_多态、接口

    一. 为什么需要接口? Java中当一个类继承父类时,最多也只能继承一个父类,扩展性会受到一定的限制,为了弥补这一缺陷,Java又提供了一种新的引用数据类型分类,叫接口. 一个类只能继承一个父类,但可 ...

  9. JS事件 什么是事件?JavaScript 创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。

    什么是事件 JavaScript 创建动态页面.事件是可以被 JavaScript 侦测到的行为. 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件. 比如说,当用户单击 ...

  10. CSS W3C统一验证工具

    CssStats 是一个在线的 CSS 代码分析工具  网址是: http://www.cssstats.com/ 如果你想要更全面的,这个神奇,你值得拥有: W3C 统一验证工具: http://v ...