3
常用api
laoyuyu edited this page 2017-09-25 16:33:21 +08:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

常用api接口

任务接口

停止所有正在下载的任务

停止所有任务的命令,并清空所有等待队列

Aria.download(this).stopAllTask();

Aria.upload(this).stopAllTask();

恢复所有停止的任务

  1. 如果执行队列没有满,则开始下载任务,直到执行队列满
  2. 如果队列执行队列已经满了,则将所有任务添加到等待队列中
Aria.download(this).resumeAllTask();

Aria.upload(this).resumeAllTask();

删除所有任务

Aria.download(this).removeAllTask();

Aria.upload(this).removeAllTask();
  1. 如果任务为完成,会删除没有完成的文件
  2. 如果使用removeAllTask(true)方法,会将已经下载完成和未完成的文件删除
  3. 如果是上传任务,不会删除本地的上传文件,但如果使用removeAllTask(true),同样会删除本地上传文件

修改文件保存信息

设置文件存储路径,如果需要修改新的文件名,修改路径便可。
如:原文件路径 /mnt/sdcard/test.zip
如果需要将test.zip改为game.zip只需要重新设置文件路径为/mnt/sdcard/game.zip

Aria.download(this).load(DOWNLOAD_URL).setDownloadPath(newPath);

获取任务列表

  • 只获取单任务的任务列表
List<DownloadEntity> list = Aria.download(this).getSimpleTaskList();
  • 只获取任务组列表
List<DownloadGroupEntity> list = Aria.download(this).getGroupTaskList();
  • 获取单任务和任务组的所有数据列表
List<AbsEntity> list = Aria.download(this).getTotleTaskList();
  • 获取上传单任务列表
List<UploadEntity> list = Aria.upload(this).getSimpleTaskList();

功能接口

设置队列最大任务数

Aria.get(this).getDownloadConfig().setMaxTaskNum(3);

Aria.get(this).getUploadConfig().setMaxTaskNum(3);

设置最大下载速度

制单个任务的上传、下载的最大速度(单位为 kb

Aria.download(this).setMaxSpeed(speed);

保存扩展字段

有的时候,你可能希望在下载的时候存放一些自己的数据,这时你可以调用该接口将数据保存下来(如果你数据比较多,或者数据比较复杂,你可以先把数据转换为JSON然后再将其存到Aria的下载实体中

Aria.download(this).load(DOWNLOAD_URL).setExtendField(str);

Aria.upload(this).load(DOWNLOAD_URL).setExtendField(str);

读取扩展字段

Aria.download(this).load(DOWNLOAD_URL).getExtendField();

Aria.upload(this).load(DOWNLOAD_URL).getExtendField();

最高优先级任务

Aria.download(this).load(DOWNLOAD_URL)`<br>`.setDownloadPath(PATH).setHighestPriority();

将任务设置为最高优先级任务,最高优先级任务有以下特点:
1、在下载队列中有且只有一个最高优先级任务
2、最高优先级任务会一直存在直到用户手动暂停或任务完成
3、任务调度器不会暂停最高优先级任务
4、用户手动暂停或任务完成后第二次重新执行该任务该命令将失效
5、如果下载队列中已经满了则会停止队尾的任务当高优先级任务完成后该队尾任务将自动执行
6、把任务设置为最高优先级任务后将自动执行任务不需要重新调用start()启动任务

设置请求类型

Aria.download(this).load("").setRequestMode(RequestEnum.GET);

Aria.upload(this).load("").setRequestMode(RequestEnum.GET);

删除下载记录

  • 第一种删除方式
Aria.download(this).load(url).removeRecord();

Aria.upload(this).load(url).removeRecord();
  • 第二种删除方式
/**
 * 删除任务记录
 *
 * @param type 需要删除的任务类型1、表示单任务下载。2、表示任务组下载。3、单任务上传
 * @param key 下载为保存路径、任务组为任务组名、上传为上传文件路径
 */
Aria.get(this).delRecord(type, key);

错误日志

  • 从数据库中获取错误日志列表
List<ErrorEntity> list = Aria.get(this). getErrorLog();
  • 清空错误日志
Aria.get(this).cleanLog()

任务实体接口

获取任务实体

  • 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();
}

设置头参数

对于某些服务器需要通过添加headler参数才能和服务器进行交互如果你需要对任务增加header支持那么你可以

  • 添加一个headler参数
 Aria.download(this)
   .load(DOWNLOAD_URL, true)
   .addHeader("key", "value");
  • 添加一组headler参数
Aria.download(this)
   .load(DOWNLOAD_URL, true)
   .addHeaders(headlerMap);