This commit is contained in:
AriaLyy
2017-09-01 16:08:23 +08:00
parent ce36165e1d
commit 89289204a0
3 changed files with 32 additions and 15 deletions

View File

@@ -39,17 +39,21 @@ final class ResumeAllCmd<T extends AbsTaskEntity> extends AbsNormalCmd<T> {
private void resumeDownload() {
List<DownloadTaskEntity> dTaskEntity =
DbEntity.findDatas(DownloadTaskEntity.class, "isGroupTask=?", "false");
for (DownloadTaskEntity te : dTaskEntity) {
int state = te.getState();
if (state == IEntity.STATE_COMPLETE || state == IEntity.STATE_FAIL) continue;
resumeEntity(te);
if (dTaskEntity != null && !dTaskEntity.isEmpty()) {
for (DownloadTaskEntity te : dTaskEntity) {
int state = te.getState();
if (state == IEntity.STATE_COMPLETE || state == IEntity.STATE_FAIL) continue;
resumeEntity(te);
}
}
List<DownloadGroupTaskEntity> groupTask = DbEntity.findAllData(DownloadGroupTaskEntity.class);
for (DownloadGroupTaskEntity te : groupTask) {
int state = te.getState();
if (state == IEntity.STATE_COMPLETE || state == IEntity.STATE_FAIL) continue;
resumeEntity(te);
if (groupTask != null && !groupTask.isEmpty()) {
for (DownloadGroupTaskEntity te : groupTask) {
int state = te.getState();
if (state == IEntity.STATE_COMPLETE || state == IEntity.STATE_FAIL) continue;
resumeEntity(te);
}
}
}
@@ -59,10 +63,12 @@ final class ResumeAllCmd<T extends AbsTaskEntity> extends AbsNormalCmd<T> {
private void resumeUpload() {
List<UploadTaskEntity> dTaskEntity =
DbEntity.findDatas(UploadTaskEntity.class, "isGroupTask=?", "false");
for (UploadTaskEntity te : dTaskEntity) {
int state = te.getState();
if (state == IEntity.STATE_COMPLETE || state == IEntity.STATE_FAIL) continue;
resumeEntity(te);
if (dTaskEntity != null && !dTaskEntity.isEmpty()) {
for (UploadTaskEntity te : dTaskEntity) {
int state = te.getState();
if (state == IEntity.STATE_COMPLETE || state == IEntity.STATE_FAIL) continue;
resumeEntity(te);
}
}
}

View File

@@ -26,7 +26,9 @@ import com.arialyy.aria.core.inf.AbsTaskEntity;
import com.arialyy.aria.core.inf.IEntity;
import com.arialyy.aria.core.queue.pool.BaseCachePool;
import com.arialyy.aria.core.queue.pool.BaseExecutePool;
import java.security.Key;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
@@ -66,13 +68,11 @@ abstract class AbsTaskQueue<TASK extends AbsTask, TASK_ENTITY extends AbsTaskEnt
* 停止所有任务
*/
@Override public void stopAllTask() {
mCachePool.clear();
for (String key : mExecutePool.getAllTask().keySet()) {
TASK task = mExecutePool.getAllTask().get(key);
if (task != null && task.isRunning()) task.stop();
}
for (String key : mCachePool.getAllTask().keySet()) {
mCachePool.removeTask(key);
}
}
@Override public int getMaxTaskNum() {

View File

@@ -53,6 +53,17 @@ public class BaseCachePool<TASK extends AbsTask> implements IPool<TASK> {
return mCacheMap;
}
/**
* 清除所有缓存的任务
*/
public void clear(){
for (String key : mCacheMap.keySet()){
TASK task = mCacheMap.get(key);
mCacheQueue.remove(task);
mCacheMap.remove(key);
}
}
/**
* 将任务放在队首
*/