Merge branch 'v_2.0' of https://github.com/AriaLyy/Aria into v_2.0

pull/10/head
AriaLyy 8 years ago
commit 20d2c53a33
  1. 11
      Aria/src/main/java/com/arialyy/aria/core/queue/DownloadTaskQueue.java
  2. 6
      Aria/src/main/java/com/arialyy/aria/core/scheduler/DownloadSchedulers.java

@ -33,9 +33,9 @@ import com.arialyy.aria.util.Configuration;
* 下载任务队列 * 下载任务队列
*/ */
public class DownloadTaskQueue implements ITaskQueue { public class DownloadTaskQueue implements ITaskQueue {
private static final String TAG = "DownloadTaskQueue"; private static final String TAG = "DownloadTaskQueue";
private CachePool mCachePool = CachePool.getInstance(); private CachePool mCachePool = CachePool.getInstance();
private ExecutePool mExecutePool = ExecutePool.getInstance(); private ExecutePool mExecutePool = ExecutePool.getInstance();
private Context mContext; private Context mContext;
//private IDownloadSchedulers mSchedulers; //private IDownloadSchedulers mSchedulers;
@ -171,13 +171,10 @@ public class DownloadTaskQueue implements ITaskQueue {
Task task = mExecutePool.getTask(entity.getDownloadUrl()); Task task = mExecutePool.getTask(entity.getDownloadUrl());
if (task != null) { if (task != null) {
Log.d(TAG, "从执行池删除任务,删除" + (mExecutePool.removeTask(task) ? "成功" : "失败")); Log.d(TAG, "从执行池删除任务,删除" + (mExecutePool.removeTask(task) ? "成功" : "失败"));
} else {
task = mCachePool.getTask(entity.getDownloadUrl());
} }
task = mCachePool.getTask(entity.getDownloadUrl());
if (task != null) { if (task != null) {
Log.d(TAG, "从缓存池删除任务,删除" + (mCachePool.removeTask(task) ? "成功" : "失败")); Log.d(TAG, "从缓存池删除任务,删除" + (mCachePool.removeTask(task) ? "成功" : "失败"));
} else {
Log.w(TAG, "没有找到下载链接为【" + entity.getDownloadUrl() + "】的任务");
} }
} }

@ -121,15 +121,16 @@ public class DownloadSchedulers implements IDownloadSchedulers {
case STOP: case STOP:
case CANCEL: case CANCEL:
mQueue.removeTask(entity); mQueue.removeTask(entity);
mQueue.removeTask(entity); if (mQueue.size() < Configuration.getInstance().getDownloadNum()) {
if (mQueue.size() != Configuration.getInstance().getDownloadNum()) {
startNextTask(entity); startNextTask(entity);
} }
break; break;
case COMPLETE: case COMPLETE:
mQueue.removeTask(entity);
startNextTask(entity); startNextTask(entity);
break; break;
case FAIL: case FAIL:
mQueue.removeTask(entity);
handleFailTask(entity); handleFailTask(entity);
break; break;
} }
@ -223,7 +224,6 @@ public class DownloadSchedulers implements IDownloadSchedulers {
* @param entity 通过Handler传递的下载实体 * @param entity 通过Handler传递的下载实体
*/ */
@Override public void startNextTask(DownloadEntity entity) { @Override public void startNextTask(DownloadEntity entity) {
mQueue.removeTask(entity);
Task newTask = mQueue.getNextTask(); Task newTask = mQueue.getNextTask();
if (newTask == null) { if (newTask == null) {
Log.w(TAG, "没有下一任务"); Log.w(TAG, "没有下一任务");

Loading…
Cancel
Save