停止所有正在下载的任务
停止所有任务的命令,并清空所有等待队列
Aria.download(this).stopAllTask();
或
Aria.upload(this).stopAllTask();
恢复所有停止的任务
- 如果执行队列没有满,则开始下载任务,直到执行队列满
- 如果队列执行队列已经满了,则将所有任务添加到等待队列中
Aria.download(this).resumeAllTask(); 或 Aria.upload(this).resumeAllTask();
删除所有任务
Aria.download(this).removeAllTask();
或
Aria.upload(this).removeAllTask();
- 如果任务为完成,会删除没有完成的文件
- 如果使用
removeAllTask(true)
方法,会将已经下载完成和未完成的文件删除
- 如果是上传任务,不会删除本地的上传文件,但如果使用
removeAllTask(true)
,同样会删除本地上传文件
获取任务当前状态
Aria.download(this).getTaskState();
或
Aria.upload(this).getTaskState();
状态码 | 说明 |
---|---|
-1 | 未知状态 |
0 | 失败 |
1 | 成功 |
2 | 停止 |
3 | 等待 |
4 | 执行中 |
5 | 预处理 |
6 | 预处理完成 |
7 | 删除任务 |
删除单个任务
/**
* 删除任务
*
* @param removeFile {@code true} 不仅删除任务数据库记录,还会删除已经删除完成的文件
* {@code false}如果任务已经完成,只删除任务数据库记录,
*/
Aria.download(this).load(taskId).cancel(true);
或
Aria.upload(this).load(taskId).cancel(true);
重置任务状态
状态重置之后,任务将重新开始执行
Aria.download(this).resetState();
或
Aria.upload(this).resetState();
查看任务是否存在
boolean b = Aria.download(this).taskExists(URL);
或
boolean b = Aria.upload(this).taskExists(URL);
查看组合任务是否存在
boolean b = Aria.download(this).taskExists(urls);
修改文件保存信息
设置文件存储路径,如果需要修改新的文件名,修改路径便可。
如:原文件路径 /mnt/sdcard/test.zip
如果需要将test.zip改为game.zip,只需要重新设置文件路径为:/mnt/sdcard/game.zip
Aria.download(this).load(DOWNLOAD_URL).setFilePath(newPath);
设置队列最大任务数
Aria.get(this).getDownloadConfig().setMaxTaskNum(3);
或
Aria.get(this).getUploadConfig().setMaxTaskNum(3);
设置最大下载速度
制单个任务的上传、下载的最大速度(单位为 kb)
Aria.download(this).setMaxSpeed(speed);
最高优先级任务
long taskId = Aria.download(this).load(DOWNLOAD_URL)
.setDownloadPath(PATH)
.setHighestPriority();
将任务设置为最高优先级任务,最高优先级任务有以下特点:
1、在下载队列中,有且只有一个最高优先级任务
2、最高优先级任务会一直存在,直到用户手动暂停或任务完成
3、任务调度器不会暂停最高优先级任务
4、用户手动暂停或任务完成后,第二次重新执行该任务,该命令将失效
5、如果下载队列中已经满了,则会停止队尾的任务,当高优先级任务完成后,该队尾任务将自动执行
6、把任务设置为最高优先级任务后,将自动执行任务,不需要重新调用start()启动任务
删除下载记录
- 第一种删除方式
Aria.download(this).load(taskId).removeRecord(); 或 Aria.upload(this).load(taskId).removeRecord();
- 第二种删除方式
/** * 删除任务记录 * * @param type 需要删除的任务类型,1、表示单任务下载。2、表示任务组下载。3、单任务上传 * @param key 下载为保存路径、任务组为任务组名、上传为上传文件路径 */ Aria.get(this).delRecord(type, key);
获取任务实体
- HTTP\FTP单任务下载实体
DownloadEntity entity = Aria.download(this).getDownloadEntity(DOWNLOAD_URL);
- HTTP任务组\FTP文件夹实体
DownloadGroupTaskEntity entity = Aria.download(this).getDownloadGroupTask(mUrls);
- HTTP\FTP单任务上传实体
UploadEntity entity = Aria.upload(this).getUploadEntity(FILE_PATH);
获取下载的文件大小、当前进度百分比
同样的,你也可以在DownloadTask对象中获取下载的文件大小
@Override public void onTaskRunning(DownloadTask task) {
//获取任务文件实体(里面包含文件名,下载地址,保存路径等信息)
DownloadEntity entity = task.getEntity();
//获取文件大小
long fileSize = task.getFileSize();
//获取单位转换后的文件大小
String fileSize1 = task.getConvertFileSize();
//当前进度百分比
int percent = task.getPercent();
}
获取当前任务的下载速度
@Override public void onTaskRunning(DownloadTask task) {
//如果你打开了速度单位转换配置,将可以通过以下方法获取带单位的下载速度,如:1 mb/s
String convertSpeed = task.getConvertSpeed();
//如果你有自己的单位格式,可以通过以下方法获取原始byte长度
long speed = task.getSpeed();
}
更新任务url
对于某些任务而言,下载地址可能需要动态改变,那么你可以
Aria.download(this)
.load(taskId)
.updateUrl(new_url)
.resume();
忽略文件路径冲突
在Aria中,每个任务的文件路径都是唯一的,如果提示路径冲突,可强制下载、上传文件
isIgnoreFilePathOccupy()
忽略权限检查
在某些定制的机器上,权限是被阉割的,如果希望忽略权限检查,可以使用这个api忽略权限检查
ignorePermissionsCheck()