Updated Aria基本使用 (markdown)

laoyuyu
2017-08-31 15:34:25 +08:00
parent 615f0fab90
commit d34a12729e

@ -1,42 +1,150 @@
## 使用Aria
### 基本使用
***
* [HTTP单任务下载](#HTTP单任务下载)
* [HTTP任务组下载](#HTTP任务组下载)
* [HTTP上传](#HTTP单任务上传)
* [FTP下载](#FTP下载)
* [FTP文件夹下载](#FTP文件夹下载)
* [FTP上传](#FTP单文件上传)
### HTTP单任务下载
* 下载\恢复下载
例子为单任务下载,只需要很简单的代码,便可以实现下载功能
```java
Aria.download(this)
.load(DOWNLOAD_URL) //读取下载地址
.setDownloadPath(DOWNLOAD_PATH) //设置文件保存的完整路径
.setDownloadPath(DOWNLOAD_PATH) //设置文件保存的完整路径
.start(); //启动下载
```
* 暂停
### 任务状态的获取
基于解耦合的考虑Aria的下载功能是和状态获取相分离的状态的获取并不会集成到链式代码中但是Aria提供了另一种更简单更灵活的方案。
通过注解,你可以很容易获取任务的所有状态。
```java
Aria.download(this).load(DOWNLOAD_URL).pause();
```
1. 将对象注册到Aria
```java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Aria.download(this).register();
}
* 取消下载
```java
Aria.download(this).load(DOWNLOAD_URL).cancel();
```
### HTTP任务组下载
任务组的下载和普通任务的下载基本上差不多,区别在于,任务组下载不需要对每一个子任务设置保存路径,**但是需要设置任务组保存文件夹路径,所有子任务都保存在该文件夹下**
* 下载\恢复下载
```java
Aria.download(this)
.load(urls) //设置一主任务参数为List<String>
.setDownloadDirPath(groupDirPath) //设置任务组的文件夹路径
/**
* 任务组总任务大小任务组是一个抽象的概念没有真实的数据实体任务组的大小是Aria动态获取子任务大小相加而得到的
* 如果你知道当前任务组总大小,你也可以调用该方法给任务组设置大小
*
* 为了更好的用户体验,建议直接设置任务组文件大小
*/
.setFileSize(fileSize)
.start(); //启动下载
```
* 暂停
```java
Aria.download(this).load(urls).pause();
```
* 取消下载
```java
Aria.download(this).load(urls).cancel();
```
### HTTP单任务上传
* 添加任务(只添加,不上传)
```java
Aria.upload(this)
.load(filePath) //文件路径
.setUploadUrl(uploadUrl) //上传路径
.setAttachment(fileKey) //服务器读取文件的key
.add();
```
* 上传
```java
Aria.upload(this)
.load(filePath) //文件路径
.setUploadUrl(uploadUrl) //上传路径
.setAttachment(fileKey) //服务器读取文件的key
.start();
```
* 取消上传
```java
Aria.upload(this).load(filePath).cancel();
```
### FTP下载
* 开始\恢复下载
```java
Aria.download(this)
.loadFtp("ftp://172.18.104.129:21/haha/large.rar")
.login("lao", "123456") //登录FTP服务器
.setDownloadPath("/mnt/sdcard/") //设置文件保存文件夹
.start();
```
2. 通过注解获取任务执行状态
* 暂停
```java
Aria.download(this).loadFtp(URL).stop();
```
**注意:**
- 注解回掉采用Apt的方式实现所以你不需要担心这会影响你机器的性能
- 被注解的方法**不能被private修饰**
- 被注解的方法**只能有一个参数,并且参数类型必须是`DownloadTask`或`UploadTask`或`DownloadGroupTask`**
- 方法名可以为任意字符串
```java
@Download.onTaskRunning(DOWNLOAD_URL) protected void running(DownloadTask task) {
//在这里处理任务执行中的状态,如进度进度条的刷新
}
* 删除任务
```java
Aria.download(this).loadFtp(URL).cancel();
```
@Download.onTaskComplete(DOWNLOAD_URL) void taskComplete(DownloadTask task) {
//在这里处理任务完成的状态
}
```
[更多注解使用方法](https://github.com/AriaLyy/Aria/wiki/%E6%B3%A8%E8%A7%A3%E4%BD%BF%E7%94%A8)
### FTP文件夹下载
* 开始\恢复下载
```java
Aria.download(this)
.loadFtpDir("ftp://172.18.104.129:21/haha/")
.setDownloadDirPath(downloadPath)
.login("lao", "123456")
.start();
```
* 暂停
```java
Aria.download(this).loadFtpDir(dir).stop();
```
* 删除任务
```java
Aria.download(this).loadFtpDir(dir).cancel();
```
### FTP单文件上传
* 开始\恢复上传
```java
Aria.upload(this)
.loadFtp("/mnt/sdcard/gggg.apk") //上传文件路径
.setUploadUrl(URL) //上传的ftp服务器地址
.login("lao", "123456")
.start();
```
* 暂停
```java
Aria.upload(this).loadFtp(FILE_PATH).stop();
```
* 删除任务
```java
Aria.upload(this).loadFtp(FILE_PATH).cancel();
```