Updated Home (markdown)

laoyuyu
2017-08-31 15:08:24 +08:00
parent 7a6b7b53fc
commit 615f0fab90
2 changed files with 207 additions and 1 deletions

@ -1 +0,0 @@
Welcome to the Aria wiki!

207
常用api.md Normal file

@ -0,0 +1,207 @@
## 常用api接口
* 任务接口
- [停止所有任务](#停止所有正在下载的任务)
- [恢复所有停止的任务](#恢复所有停止的任务)
- [删除所有任务](#删除所有任务)
- [修改文件路径保存路径或保存文件名](#修改文件保存信息)
- [获取任务列表](#获取任务列表)
* 功能接口
- [设置队列最大任务数](#设置队列最大任务数)
- [设置最大下载速度](#设置最大下载速度)
- [保存扩展字段](#保存扩展字段)
- [读取扩展字段](#读取扩展字段)
- [创建最高优先级任务](#最高优先级任务)
- [对任务添加Header](#设置头参数)
- [设置请求类型](#设置请求类型)
- [删除下载记录](#删除下载记录)
- [错误日志获取或清楚](#错误日志)
* 任务实体接口
- [获取任务实体](#获取任务实体)
- [文件信息](#获取下载的文件大小、当前进度百分比)
- [获取下载速度](#获取当前任务的下载速度)
## 任务接口
### 停止所有正在下载的任务
```java
Aria.download(this).stopAllTask();
Aria.upload(this).stopAllTask();
```
### 恢复所有停止的任务
```java
Aria.download(this).resumeAllTask();
Aria.upload(this).resumeAllTask();
```
### 删除所有任务
```java
Aria.download(this).removeAllTask();
Aria.upload(this).removeAllTask();
```
1、如果任务为完成会删除没有完成的文件</br>
2、如果使用`removeAllTask(true)`方法,会将已经下载完成和未完成的文件删除</br>
3、如果是上传任务不会删除本地的上传文件但如果使用`removeAllTask(true)`,同样会删除本地上传文件
### 修改文件保存信息
设置文件存储路径,如果需要修改新的文件名,修改路径便可。<br>
如:原文件路径 /mnt/sdcard/test.zip<br>
如果需要将test.zip改为game.zip只需要重新设置文件路径为/mnt/sdcard/game.zip
```java
Aria.download(this).load(DOWNLOAD_URL).setDownloadPath(newPath);
```
### 获取任务列表
* 只获取单任务的任务列表
```java
List<DownloadEntity> list = Aria.download(this).getSimpleTaskList();
```
* 只获取任务组列表
```java
List<DownloadGroupEntity> list = Aria.download(this).getGroupTaskList();
```
* 获取单任务和任务组的所有数据列表
```java
List<AbsEntity> list = Aria.download(this).getTotleTaskList();
```
* 获取上传单任务列表
```java
List<UploadEntity> list = Aria.upload(this).getSimpleTaskList();
```
***
## 功能接口
### 设置队列最大任务数
```java
Aria.get(this).getDownloadConfig().setMaxTaskNum(3);
Aria.get(this).getUploadConfig().setMaxTaskNum(3);
```
### 设置最大下载速度
制单个任务的上传、下载的最大速度(单位为 kb
```java
Aria.download(this).setMaxSpeed(speed);
```
### 保存扩展字段
有的时候,你可能希望在下载的时候存放一些自己的数据,这时你可以调用该接口将数据保存下来(如果你数据比较多,或者数据比较复杂,你可以先把数据转换为**JSON**然后再将其存到Aria的下载实体中
```java
Aria.download(this).load(DOWNLOAD_URL).setExtendField(str);
Aria.upload(this).load(DOWNLOAD_URL).setExtendField(str);
```
### 读取扩展字段
```java
Aria.download(this).load(DOWNLOAD_URL).getExtendField();
Aria.upload(this).load(DOWNLOAD_URL).getExtendField();
```
### 最高优先级任务
```java
Aria.download(this).load(DOWNLOAD_URL)`<br>`.setDownloadPath(PATH).setHighestPriority();
```
将任务设置为最高优先级任务,最高优先级任务有以下特点:<br>
1、在下载队列中有且只有一个最高优先级任务<br>
2、最高优先级任务会一直存在直到用户手动暂停或任务完成<br>
3、任务调度器不会暂停最高优先级任务<br>
4、用户手动暂停或任务完成后第二次重新执行该任务该命令将失效<br>
5、如果下载队列中已经满了则会停止队尾的任务当高优先级任务完成后该队尾任务将自动执行<br>
6、把任务设置为最高优先级任务后将自动执行任务不需要重新调用start()启动任务
### 设置请求类型
```java
Aria.download(this).load("").setRequestMode(RequestEnum.GET);
Aria.upload(this).load("").setRequestMode(RequestEnum.GET);
```
### 删除下载记录
* 第一种删除方式
```java
Aria.download(this).load(url).removeRecord();
Aria.upload(this).load(url).removeRecord();
```
* 第二种删除方式
```java
/**
* 删除任务记录
*
* @param type 需要删除的任务类型1、表示单任务下载。2、表示任务组下载。3、单任务上传
* @param key 下载为保存路径、任务组为任务组名、上传为上传文件路径
*/
Aria.get(this).delRecord(type, key);
```
### 错误日志
* 从数据库中获取错误日志列表
```java
List<ErrorEntity> list = Aria.get(this). getErrorLog();
```
* 清空错误日志
```java
Aria.get(this).cleanLog()
```
***
## 任务实体接口
### 获取任务实体
* HTTP\FTP单任务下载实体
```java
DownloadEntity entity = Aria.download(this).getDownloadEntity(DOWNLOAD_URL);
```
* HTTP任务组\FTP文件夹实体
```java
DownloadGroupTaskEntity entity = Aria.download(this).getDownloadGroupTask(mUrls);
```
* HTTP\FTP单任务上传实体
```java
UploadEntity entity = Aria.upload(this).getUploadEntity(FILE_PATH);
```
### 获取下载的文件大小、当前进度百分比
同样的你也可以在DownloadTask对象中获取下载的文件大小
```java
@Override public void onTaskRunning(DownloadTask task) {
//获取任务文件实体(里面包含文件名,下载地址,保存路径等信息)
DownloadEntity entity = task.getEntity();
 //获取文件大小
long fileSize = task.getFileSize();
//获取单位转换后的文件大小
String fileSize1 = task.getConvertFileSize();
//当前进度百分比
int percent = task.getPercent();
}
```
### 获取当前任务的下载速度
``` java
@Override public void onTaskRunning(DownloadTask task) {
//如果你打开了速度单位转换配置将可以通过以下方法获取带单位的下载速度1 mb/s
String convertSpeed = task.getConvertSpeed();
//如果你有自己的单位格式可以通过以下方法获取原始byte长度
long speed = task.getSpeed();
}
```
### 设置头参数
对于某些服务器需要通过添加headler参数才能和服务器进行交互如果你需要对任务增加header支持那么你可以
* 添加一个headler参数
```java
Aria.download(this)
.load(DOWNLOAD_URL, true)
.addHeader("key", "value");
```
* 添加一组headler参数
```java
Aria.download(this)
.load(DOWNLOAD_URL, true)
.addHeaders(headlerMap);
```