修复暂停问题
This commit is contained in:
@@ -23,8 +23,8 @@ dependencies {
|
|||||||
testCompile 'junit:junit:4.12'
|
testCompile 'junit:junit:4.12'
|
||||||
compile 'com.android.support:appcompat-v7:23.1.1'
|
compile 'com.android.support:appcompat-v7:23.1.1'
|
||||||
compile project(':AriaAnnotations')
|
compile project(':AriaAnnotations')
|
||||||
// compile 'com.arialyy.aria:aria-ftp-plug:1.0.1'
|
compile 'com.arialyy.aria:aria-ftp-plug:1.0.3'
|
||||||
compile project(':AriaFtpPlug')
|
|
||||||
|
|
||||||
|
// compile project(':AriaFtpPlug')
|
||||||
}
|
}
|
||||||
apply from: 'bintray-release.gradle'
|
apply from: 'bintray-release.gradle'
|
||||||
|
@@ -21,8 +21,8 @@ import android.util.Log;
|
|||||||
import com.arialyy.aria.core.AriaManager;
|
import com.arialyy.aria.core.AriaManager;
|
||||||
import com.arialyy.aria.core.common.QueueMod;
|
import com.arialyy.aria.core.common.QueueMod;
|
||||||
import com.arialyy.aria.core.inf.AbsTask;
|
import com.arialyy.aria.core.inf.AbsTask;
|
||||||
import com.arialyy.aria.core.inf.IEntity;
|
|
||||||
import com.arialyy.aria.core.inf.AbsTaskEntity;
|
import com.arialyy.aria.core.inf.AbsTaskEntity;
|
||||||
|
import com.arialyy.aria.core.inf.IEntity;
|
||||||
import com.arialyy.aria.util.NetUtils;
|
import com.arialyy.aria.util.NetUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -85,6 +85,9 @@ public abstract class AbsFileer<ENTITY extends AbsNormalEntity, TASK_ENTITY exte
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
|
if (mConstance.isRunning) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
startFlow();
|
startFlow();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,11 +95,11 @@ public abstract class AbsFileer<ENTITY extends AbsNormalEntity, TASK_ENTITY exte
|
|||||||
* 开始下载流程
|
* 开始下载流程
|
||||||
*/
|
*/
|
||||||
private void startFlow() {
|
private void startFlow() {
|
||||||
|
mConstance.resetState();
|
||||||
checkTask();
|
checkTask();
|
||||||
if (mListener instanceof IDownloadListener) {
|
if (mListener instanceof IDownloadListener) {
|
||||||
((IDownloadListener) mListener).onPostPre(mEntity.getFileSize());
|
((IDownloadListener) mListener).onPostPre(mEntity.getFileSize());
|
||||||
}
|
}
|
||||||
mConstance.resetState();
|
|
||||||
if (!mTaskEntity.isSupportBP) {
|
if (!mTaskEntity.isSupportBP) {
|
||||||
mThreadNum = 1;
|
mThreadNum = 1;
|
||||||
mConstance.THREAD_NUM = mThreadNum;
|
mConstance.THREAD_NUM = mThreadNum;
|
||||||
|
@@ -88,6 +88,7 @@ public class BaseExecutePool<TASK extends AbsTask> implements IPool<TASK> {
|
|||||||
* @param maxNum 下载数
|
* @param maxNum 下载数
|
||||||
*/
|
*/
|
||||||
public void setMaxNum(int maxNum) {
|
public void setMaxNum(int maxNum) {
|
||||||
|
synchronized (AriaManager.LOCK) {
|
||||||
try {
|
try {
|
||||||
ArrayBlockingQueue<TASK> temp = new ArrayBlockingQueue<>(maxNum);
|
ArrayBlockingQueue<TASK> temp = new ArrayBlockingQueue<>(maxNum);
|
||||||
TASK task;
|
TASK task;
|
||||||
@@ -100,6 +101,7 @@ public class BaseExecutePool<TASK extends AbsTask> implements IPool<TASK> {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加新任务
|
* 添加新任务
|
||||||
@@ -107,6 +109,7 @@ public class BaseExecutePool<TASK extends AbsTask> implements IPool<TASK> {
|
|||||||
* @param newTask 新任务
|
* @param newTask 新任务
|
||||||
*/
|
*/
|
||||||
boolean putNewTask(TASK newTask) {
|
boolean putNewTask(TASK newTask) {
|
||||||
|
synchronized (AriaManager.LOCK) {
|
||||||
String url = newTask.getKey();
|
String url = newTask.getKey();
|
||||||
boolean s = mExecuteQueue.offer(newTask);
|
boolean s = mExecuteQueue.offer(newTask);
|
||||||
Log.w(TAG, "任务添加" + (s ? "成功" : "失败,【" + url + "】"));
|
Log.w(TAG, "任务添加" + (s ? "成功" : "失败,【" + url + "】"));
|
||||||
@@ -115,11 +118,13 @@ public class BaseExecutePool<TASK extends AbsTask> implements IPool<TASK> {
|
|||||||
}
|
}
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 队列满时,将移除下载队列中的第一个任务
|
* 队列满时,将移除下载队列中的第一个任务
|
||||||
*/
|
*/
|
||||||
boolean pollFirstTask() {
|
boolean pollFirstTask() {
|
||||||
|
synchronized (AriaManager.LOCK) {
|
||||||
try {
|
try {
|
||||||
TASK oldTask = mExecuteQueue.poll(TIME_OUT, TimeUnit.MICROSECONDS);
|
TASK oldTask = mExecuteQueue.poll(TIME_OUT, TimeUnit.MICROSECONDS);
|
||||||
if (oldTask == null) {
|
if (oldTask == null) {
|
||||||
@@ -135,6 +140,7 @@ public class BaseExecutePool<TASK extends AbsTask> implements IPool<TASK> {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override public TASK pollTask() {
|
@Override public TASK pollTask() {
|
||||||
synchronized (AriaManager.LOCK) {
|
synchronized (AriaManager.LOCK) {
|
||||||
@@ -183,7 +189,10 @@ public class BaseExecutePool<TASK extends AbsTask> implements IPool<TASK> {
|
|||||||
}
|
}
|
||||||
String convertKey = CommonUtil.keyToHashKey(key);
|
String convertKey = CommonUtil.keyToHashKey(key);
|
||||||
TASK task = mExecuteMap.get(convertKey);
|
TASK task = mExecuteMap.get(convertKey);
|
||||||
if (mExecuteQueue.remove(task)) {
|
final int oldQueueSize = mExecuteQueue.size();
|
||||||
|
boolean isSuccess = mExecuteQueue.remove(task);
|
||||||
|
final int newQueueSize = mExecuteQueue.size();
|
||||||
|
if (isSuccess && newQueueSize != oldQueueSize) {
|
||||||
mExecuteMap.remove(convertKey);
|
mExecuteMap.remove(convertKey);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -3,7 +3,7 @@ publish {
|
|||||||
artifactId = 'aria-ftp-plug'
|
artifactId = 'aria-ftp-plug'
|
||||||
userOrg = rootProject.userOrg
|
userOrg = rootProject.userOrg
|
||||||
groupId = rootProject.groupId
|
groupId = rootProject.groupId
|
||||||
uploadName = 'AriaFtpPlug'
|
uploadName = 'FtpPlug'
|
||||||
publishVersion = rootProject.publishVersion
|
publishVersion = rootProject.publishVersion
|
||||||
description = rootProject.description
|
description = rootProject.description
|
||||||
website = rootProject.website
|
website = rootProject.website
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
## 开发日志
|
## 开发日志
|
||||||
|
+ v_3.3.3 修复进度条错乱的问题,修复同一时间多次调用start导致重复下载的问题
|
||||||
+ v_3.3.2 新加reTry(),修复上一个版本不会回调失败事件的问题;增加running状态下5秒钟保存一次数据库的功能;修复FTP断点上传文件不完整的问题
|
+ v_3.3.2 新加reTry(),修复上一个版本不会回调失败事件的问题;增加running状态下5秒钟保存一次数据库的功能;修复FTP断点上传文件不完整的问题
|
||||||
+ v_3.3.1 增加网络事件,网络未连接,将不会重试下载,修复删除未开始任务,状态回调错误
|
+ v_3.3.1 增加网络事件,网络未连接,将不会重试下载,修复删除未开始任务,状态回调错误
|
||||||
+ v_3.3.0 增加任务组子任务暂停和开始控制功能、修复5.0系统以上数据库多生成两个字段的bug、去掉addSchedulerListener事件
|
+ v_3.3.0 增加任务组子任务暂停和开始控制功能、修复5.0系统以上数据库多生成两个字段的bug、去掉addSchedulerListener事件
|
||||||
|
@@ -29,8 +29,8 @@ Aria有以下特点:
|
|||||||
[](https://bintray.com/arialyy/maven/AriaApi/_latestVersion)
|
[](https://bintray.com/arialyy/maven/AriaApi/_latestVersion)
|
||||||
[](https://bintray.com/arialyy/maven/AriaCompiler/_latestVersion)
|
[](https://bintray.com/arialyy/maven/AriaCompiler/_latestVersion)
|
||||||
```java
|
```java
|
||||||
compile 'com.arialyy.aria:aria-core:3.2.22'
|
compile 'com.arialyy.aria:aria-core:3.3.3'
|
||||||
annotationProcessor 'com.arialyy.aria:aria-compiler:3.2.22'
|
annotationProcessor 'com.arialyy.aria:aria-compiler:3.3.3'
|
||||||
```
|
```
|
||||||
|
|
||||||
***
|
***
|
||||||
|
@@ -46,14 +46,14 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
|||||||
private static final String DOWNLOAD_URL =
|
private static final String DOWNLOAD_URL =
|
||||||
//"http://kotlinlang.org/docs/kotlin-docs.pdf";
|
//"http://kotlinlang.org/docs/kotlin-docs.pdf";
|
||||||
//"https://atom-installer.github.com/v1.13.0/AtomSetup.exe?s=1484074138&ext=.exe";
|
//"https://atom-installer.github.com/v1.13.0/AtomSetup.exe?s=1484074138&ext=.exe";
|
||||||
//"http://static.gaoshouyou.com/d/22/94/822260b849944492caadd2983f9bb624.apk";
|
"http://static.gaoshouyou.com/d/22/94/822260b849944492caadd2983f9bb624.apk";
|
||||||
//"http://sitcac.daxincf.cn/wp-content/uploads/swift_vido/01/element.mp4_1";
|
//"http://sitcac.daxincf.cn/wp-content/uploads/swift_vido/01/element.mp4_1";
|
||||||
//"http://120.25.196.56:8000/filereq?id=15692406294&ipncid=105635&client=android&filename=20170819185541.avi";
|
//"http://120.25.196.56:8000/filereq?id=15692406294&ipncid=105635&client=android&filename=20170819185541.avi";
|
||||||
//"http://down2.xiaoshuofuwuqi.com/d/file/filetxt/20170608/14/%BA%DA%CE%D7%CA%A6%E1%C8%C6%F0.txt";
|
//"http://down2.xiaoshuofuwuqi.com/d/file/filetxt/20170608/14/%BA%DA%CE%D7%CA%A6%E1%C8%C6%F0.txt";
|
||||||
//"http://tinghuaapp.oss-cn-shanghai.aliyuncs.com/20170612201739607815";
|
//"http://tinghuaapp.oss-cn-shanghai.aliyuncs.com/20170612201739607815";
|
||||||
//"http://static.gaoshouyou.com/d/36/69/2d3699acfa69e9632262442c46516ad8.apk";
|
//"http://static.gaoshouyou.com/d/36/69/2d3699acfa69e9632262442c46516ad8.apk";
|
||||||
//"http://oqcpqqvuf.bkt.clouddn.com/ceshi.txt";
|
//"http://oqcpqqvuf.bkt.clouddn.com/ceshi.txt";
|
||||||
"http://down8.androidgame-store.com/201706122321/97967927DD4E53D9905ECAA7874C8128/new/game1/19/45319/com.neuralprisma-2.5.2.174-2000174_1494784835.apk?f=web_1";
|
//"http://down8.androidgame-store.com/201706122321/97967927DD4E53D9905ECAA7874C8128/new/game1/19/45319/com.neuralprisma-2.5.2.174-2000174_1494784835.apk?f=web_1";
|
||||||
//不支持断点的链接
|
//不支持断点的链接
|
||||||
//"http://ox.konsung.net:5555/ksdc-web/download/downloadFile/?fileName=ksdc_1.0.2.apk&rRange=0-";
|
//"http://ox.konsung.net:5555/ksdc-web/download/downloadFile/?fileName=ksdc_1.0.2.apk&rRange=0-";
|
||||||
//"http://172.18.104.50:8080/download/_302turn";
|
//"http://172.18.104.50:8080/download/_302turn";
|
||||||
@@ -72,8 +72,8 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
|||||||
* 设置start 和 stop 按钮状态
|
* 设置start 和 stop 按钮状态
|
||||||
*/
|
*/
|
||||||
private void setBtState(boolean state) {
|
private void setBtState(boolean state) {
|
||||||
mStart.setEnabled(state);
|
//mStart.setEnabled(state);
|
||||||
mStop.setEnabled(!state);
|
//mStop.setEnabled(!state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public boolean onCreateOptionsMenu(Menu menu) {
|
@Override public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
@@ -195,11 +195,23 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
|||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
switch (view.getId()) {
|
switch (view.getId()) {
|
||||||
case R.id.start:
|
case R.id.start:
|
||||||
Aria.download(SingleTaskActivity.this)
|
startD();
|
||||||
.load(DOWNLOAD_URL, true)
|
startD();
|
||||||
.addHeader("groupName", "value")
|
startD();
|
||||||
.setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/hhhhhhhh.apk")
|
startD();
|
||||||
.start();
|
startD();
|
||||||
|
startD();
|
||||||
|
//new Thread(new Runnable() {
|
||||||
|
// @Override public void run() {
|
||||||
|
// startD();
|
||||||
|
// }
|
||||||
|
//}).start();
|
||||||
|
//
|
||||||
|
//new Thread(new Runnable() {
|
||||||
|
// @Override public void run() {
|
||||||
|
// startD();
|
||||||
|
// }
|
||||||
|
//}).start();
|
||||||
break;
|
break;
|
||||||
case R.id.stop:
|
case R.id.stop:
|
||||||
Aria.download(this).load(DOWNLOAD_URL).stop();
|
Aria.download(this).load(DOWNLOAD_URL).stop();
|
||||||
@@ -209,4 +221,12 @@ public class SingleTaskActivity extends BaseActivity<ActivitySingleBinding> {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void startD(){
|
||||||
|
Aria.download(SingleTaskActivity.this)
|
||||||
|
.load(DOWNLOAD_URL, true)
|
||||||
|
.addHeader("groupName", "value")
|
||||||
|
.setDownloadPath(Environment.getExternalStorageDirectory().getPath() + "/hhhhhhhh.apk")
|
||||||
|
.start();
|
||||||
|
}
|
||||||
}
|
}
|
@@ -24,6 +24,10 @@
|
|||||||
<item>鲜果消消乐</item>
|
<item>鲜果消消乐</item>
|
||||||
<item>航海奇迹</item>
|
<item>航海奇迹</item>
|
||||||
|
|
||||||
|
<item>test_1</item>
|
||||||
|
<item>test_2</item>
|
||||||
|
<item>test_3</item>
|
||||||
|
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="download_url">
|
<string-array name="download_url">
|
||||||
<item>https://g37.gdl.netease.com/onmyoji_netease_10_1.0.20.apk</item>
|
<item>https://g37.gdl.netease.com/onmyoji_netease_10_1.0.20.apk</item>
|
||||||
@@ -32,6 +36,11 @@
|
|||||||
<item>http://rs.0.gaoshouyou.com/d/23/69/07238f952669727878d7a0e180534c8b.apk</item>
|
<item>http://rs.0.gaoshouyou.com/d/23/69/07238f952669727878d7a0e180534c8b.apk</item>
|
||||||
<item>http://rs.0.gaoshouyou.com/d/e7/3d/73e716d3353de5b479fcf7da8d36a5ef.apk</item>
|
<item>http://rs.0.gaoshouyou.com/d/e7/3d/73e716d3353de5b479fcf7da8d36a5ef.apk</item>
|
||||||
<item>http://static.gaoshouyou.com/d/22/94/822260b849944492caadd2983f9bb624.apk</item>
|
<item>http://static.gaoshouyou.com/d/22/94/822260b849944492caadd2983f9bb624.apk</item>
|
||||||
|
|
||||||
|
<item>http://dby-resource-android.duobeiyun.com/jz22a8508b4265466b9fb4bb29082eaa2d.zip</item>
|
||||||
|
<item>http://dby-resource-android.duobeiyun.com/jz05fa8faf068145fcb25c93c8091297ad.zip</item>
|
||||||
|
<item>http://dby-resource-android.duobeiyun.com/jz684e1b4c2f6b4576979e60fd95edebad.zip</item>
|
||||||
|
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string-array name="highest_names">
|
<string-array name="highest_names">
|
||||||
|
@@ -37,8 +37,8 @@ task clean(type: Delete) {
|
|||||||
ext {
|
ext {
|
||||||
userOrg = 'arialyy'
|
userOrg = 'arialyy'
|
||||||
groupId = 'com.arialyy.aria'
|
groupId = 'com.arialyy.aria'
|
||||||
publishVersion = '3.3.3_dev'
|
publishVersion = '3.3.3'
|
||||||
// publishVersion = '1.0.1' //FTP插件
|
// publishVersion = '1.0.3' //FTP插件
|
||||||
repoName='maven'
|
repoName='maven'
|
||||||
desc = 'android 下载框架'
|
desc = 'android 下载框架'
|
||||||
website = 'https://github.com/AriaLyy/Aria'
|
website = 'https://github.com/AriaLyy/Aria'
|
||||||
|
@@ -16,6 +16,6 @@
|
|||||||
#org.gradle.daemon=true
|
#org.gradle.daemon=true
|
||||||
#org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
|
#org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
|
||||||
# gradle proxy https://chaosleong.github.io/2017/02/10/Configuring-Gradle-Proxy/
|
# gradle proxy https://chaosleong.github.io/2017/02/10/Configuring-Gradle-Proxy/
|
||||||
systemProp.socksProxyHost=127.0.0.1
|
#systemProp.socksProxyHost=127.0.0.1
|
||||||
systemProp.socksProxyPort=51110
|
#systemProp.socksProxyPort=60777
|
||||||
systemprop.socksProxyVersion=5
|
#systemprop.socksProxyVersion=5
|
Reference in New Issue
Block a user