第三方下载控件 用起来还是不错的偶!Aria
本文主要介绍开源项目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的更多相关文章
- Android下拉涮新第三方通用控件
Android下拉涮新第三方通用控件https://github.com/chrisbanes/Android-PullToRefresh Pull To Refresh Views for Andr ...
- 第三方分页控件aspnetPager出现问题解决方法
问题描述: 今天在打开以前的项目使用vs2013打开后并且生成解决方案的时候发现报错了.经过检查发现是由于第三方分页控件aspnetPager在页面上不能引用到了. 解决方法: 1. 首先将AspNe ...
- C#调用第三方ocx控件 (winform /aspx)
C#调用第三方ocx控件 1..net环境在工具箱上点右键,选择自定义工具箱,然后选择你需要的COM或者OCX控件就可以了. 2.在自定义工具箱中加入相应的控件,设置id,在客户端脚本中直接引用它 ...
- (转)WEB第三方打印控件[ASP.NET常用工具]
本文转载自:http://blog.csdn.net/chz_cslg/article/details/25415347 在B/S模式开发中,打印是个很大的困扰.无论是采用页面直接输出或者引用WORD ...
- 学习笔记13_第三方js控件&EasyUI使用
第三方UI包使用思路: 1.先映入各种JS包,包含JS版本包,第三方CSS包,第三方主JS包,第三方语言包. 2.确定要做什么,是对话框还是表格.3.根据Demo和目的,在<body>内, ...
- php文件夹上传下载控件分享
用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个php文件夹上传下载的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是实例的部分脚本文件 这里我先 ...
- asp.net文件夹上传下载控件分享
用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在.net环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下是此例中各种脚本文件 ...
- java文件夹上传下载控件分享
用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在JAVA.MyEclipse环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下 ...
- asp.net 第三方UI控件 Telerik KendoUI 之 TreeVIew 的用法记录
一.前台显示 备注:一次性取出所有节点 function loadTreeData() { $.ajax({ type: 'POST', url: '@(Html.UrlHref("Scri ...
随机推荐
- Spring-Security (学习记录七)--实现FilterInvocationSecurityMetadataSource的类将无法切入声明式事物
目录 1 查看继承关系 2 说明 3 查看源码: 实现了FilterInvocationSecurityMetadataSource 的类将无法切入声明式事物. 原因: 1 查看继承关系 先查看Fil ...
- SPSS缺失值得分析处理
SPSS缺失值得分析处理 在资料收集的过程中,由于各种原因可能导致数据收集不全,就会产生缺失值,且这种情况往往无法避免.如果缺失值处理不当,就会导致分析结果精度降低,出现偏倚甚至是错误的理论,因此缺失 ...
- java发送http的get/post请求(一)
HTTP请求类 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; ...
- Day 13 : 函数递归,
从前有有座山,山里有座庙,庙里有个老和尚给小和尚们讲故事,讲的什么呀,讲的是,从前有有座山,山里有座庙,庙里有个老和尚给小和尚们讲故事,讲的什么呀?讲的是?...... 递归:1.一个函数再内部调用了 ...
- 转Git仓库分支(Branch)和标签(Tag)
仓库的分支(Branch)规范,影响到每个团队的工作流的一致性:标签(Tag)便于开发团队.测 试团队和其他团队识别每个项目的版本,特别是在协同处理线上问题的时候,大家可以非常清楚 地知道线上运行版本 ...
- D3.js比例尺 定量比例尺 之 线性比例尺(v3版本)
定量比例尺 : 数学上有函数的概念,不是编程中所说的函数,如线性函数.指数函数.对数函数等,而指的是一个量随着另一个量的变化而变化.例如有一下线性函数 : y=2x+1该函数在二维坐标系中绘制出来的图 ...
- iOS开发系列-NSFileManager
NSFileManager NSFileManager类主要对文件和目录的操作(删除.修改.移动.复制等等).
- 前端常用的库和实用技术之JavaScript 模块化
模块化概念 AMD是requirejs在推广过程中对模块化定义的规范化产出. 异步加载模块,依赖前置,提前执行 Define定义模块define(['require','foo'],function( ...
- PHP算法之整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1.12 ...
- Perl 变量
Perl 变量 变量是存储在内存中的数据,创建一个变量即会在内存上开辟一个空间. 解释器会根据变量的类型来决定其在内存中的存储空间,因此你可以为变量分配不同的数据类型,如整型.浮点型.字符串等. 上一 ...