本文主要介绍开源项目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. BackgroundWorker study

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. 2019 牛客多校第三场 H Magic Line

    题目链接:https://ac.nowcoder.com/acm/contest/883/H 题目大意 给定 N 个不同的整数点,N 为偶数,求一条直线,这条直线能把这 N 个点对半分开,输出这条直线 ...

  3. 【6折抢】戴尔i7新品Latitude高性能商用本

    致敬拼搏成长中的企业 戴尔5月有钜惠! 买1赠1送同款,单台价格2500元 这波来自戴尔官网的致敬很走心 满足初级办公和高性能运算多重需求 限时折扣火热开抢! 新品  latitude 6折抢! 戴尔 ...

  4. Two-phase Termination 把玩具收拾好再去睡觉。

    字面翻译是“两阶段终止”,这个模式用来进行结束操作后,再终止线程.比如我们想停止一个线程,但是让他停止之前必须要做一些清理工作,这时候就需要用到two-phase termination模式. pub ...

  5. vim 命令行模式 操作指令

      复制n行: nyy 粘贴:p 剪切(删除)n行: ndd 剪切 ( 删除 ) n个字符:nx 移动光标到第一行 : gg 移动光标到最后一行 : G 设置格式  :gg=G 返回上一次操作前(撤销 ...

  6. stelller插件与background-attachment配合使用,制作滚动页面

    stelller插件与background-attachment:fixed配合使用,制作滚动页面

  7. Nlog 日志框架简单教程

    安装 Nuget获取 配置寻找 会自动寻找在应用程序目录下的NLog.config(大小写敏感) 如何配置config <?xml version="1.0" encodin ...

  8. 关于DB9一些信号的缩写

    https://www.cnblogs.com/CCJVL/archive/2010/02/04/1663565.html 场景:PCB板子与PC通过RS232连接,以下信号的方向相对于PCB板子而言 ...

  9. 0908CSP-S模拟测试赛后总结

    我早就料到昨天会考两场2333 话说老师终于给模拟赛改名了啊. 距离NOIP祭日还有60天hhh. 以上是废话. %%%DeepinC无敌神 -rank1 zkt神.kx神.动动神 -rank2 有钱 ...

  10. (转)Android中px与dip,sp与dip等的转换工具类

    功能 通常在代码中设置组件或文字大小只能用px,通过这个工具类我们可以把dip(dp)或sp为单位的值转换为以px为单位的值而保证大小不变.方法中的参数请参考http://www.cnblogs.co ...