第三方下载控件 用起来还是不错的偶!Aria
2024-09-06 13:02:42
本文主要介绍开源项目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
最新文章
- Android 裁剪图片为圆形图片
- 【代码笔记】iOS-仿QQ空间,歌曲播放
- Node.js GET/POST请求
- Linux free命令详解(转)
- 【Unity】13.3 Realtime GI示例
- 【转载】最近在用Arrays的asList()生成的List时,List元素的个数时而不正确,数组转化为List,即Arrays.asList(intArray);
- 网易云音乐 歌词制作软件 BesLyric
- UIView之常用属性
- iScroll 4,把禁掉的:active样式还给我~
- SWOT分析是神马?
- Postgres数据库在Linux中的I/O优化
- 给xcode项目修改名字
- Python+Selenium+webdriver环境搭建(windows)以及相关资源下载链接
- 【Luogu4630】【APIO2018】 Duathlon 铁人两项 (圆方树)
- ELK 集群升级操作
- 未能加载文件或程序集";CheckRegister";或它的某一个依赖项.参数错误. (异常来
- mac bash 下使用vi 快捷方式——因为没有alt键 所以没有办法 用vi模式也非常方便的
- 在windows、linux中开启nginx的Gzip压缩大大提高页面、图片加载速度<;转>;
- OLTP和OLAP有何区别?
- Git详解之Git分支