This commit is contained in:
@ -33,63 +33,63 @@ public interface ITask<ENTITY extends AbsEntity> {
|
||||
/**
|
||||
* 唯一标识符,DownloadTask 为下载地址,UploadTask 为文件路径
|
||||
*/
|
||||
public String getKey();
|
||||
String getKey();
|
||||
|
||||
/**
|
||||
* 任务是否正在执行
|
||||
*
|
||||
* @return true,正在执行;
|
||||
*/
|
||||
public boolean isRunning();
|
||||
boolean isRunning();
|
||||
|
||||
/**
|
||||
* 获取信息实体
|
||||
*/
|
||||
public ENTITY getEntity();
|
||||
ENTITY getEntity();
|
||||
|
||||
public void start();
|
||||
void start();
|
||||
|
||||
public void stop();
|
||||
void stop();
|
||||
|
||||
public void cancel();
|
||||
void cancel();
|
||||
|
||||
/**
|
||||
* 原始byte速度
|
||||
*/
|
||||
public long getSpeed();
|
||||
long getSpeed();
|
||||
|
||||
/**
|
||||
* 转换单位后的速度
|
||||
*/
|
||||
public String getConvertSpeed();
|
||||
String getConvertSpeed();
|
||||
|
||||
/**
|
||||
* 获取百分比进度
|
||||
*/
|
||||
public int getPercent();
|
||||
int getPercent();
|
||||
|
||||
/**
|
||||
* 原始文件byte长度
|
||||
*/
|
||||
public long getFileSize();
|
||||
long getFileSize();
|
||||
|
||||
/**
|
||||
* 转换单位后的文件长度
|
||||
*/
|
||||
public String getConvertFileSize();
|
||||
String getConvertFileSize();
|
||||
|
||||
/**
|
||||
* 获取当前进度
|
||||
*/
|
||||
public long getCurrentProgress();
|
||||
long getCurrentProgress();
|
||||
|
||||
/**
|
||||
* 获取单位转换后的进度
|
||||
*
|
||||
* @return 返回 3mb
|
||||
*/
|
||||
public String getConvertCurrentProgress();
|
||||
String getConvertCurrentProgress();
|
||||
|
||||
public void setTargetName(String targetName);
|
||||
void setTargetName(String targetName);
|
||||
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ 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.util.Iterator;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
@ -52,14 +53,12 @@ abstract class AbsTaskQueue<TASK extends AbsTask, TASK_ENTITY extends AbsTaskEnt
|
||||
}
|
||||
|
||||
@Override public void removeAllTask() {
|
||||
Set<String> exeKeys = mExecutePool.getAllTask().keySet();
|
||||
for (String key : exeKeys) {
|
||||
for (String key : mExecutePool.getAllTask().keySet()) {
|
||||
TASK task = mExecutePool.getAllTask().get(key);
|
||||
if (task != null) task.cancel();
|
||||
}
|
||||
Set<String> cacheKeys = mCachePool.getAllTask().keySet();
|
||||
for (String key : cacheKeys) {
|
||||
mExecutePool.removeTask(key);
|
||||
for (String key : mCachePool.getAllTask().keySet()) {
|
||||
mCachePool.removeTask(key);
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,14 +66,12 @@ abstract class AbsTaskQueue<TASK extends AbsTask, TASK_ENTITY extends AbsTaskEnt
|
||||
* 停止所有任务
|
||||
*/
|
||||
@Override public void stopAllTask() {
|
||||
Set<String> exeKeys = mExecutePool.getAllTask().keySet();
|
||||
for (String key : exeKeys) {
|
||||
for (String key : mExecutePool.getAllTask().keySet()) {
|
||||
TASK task = mExecutePool.getAllTask().get(key);
|
||||
if (task != null && task.isRunning()) task.stop();
|
||||
}
|
||||
Set<String> cacheKeys = mCachePool.getAllTask().keySet();
|
||||
for (String key : cacheKeys) {
|
||||
mExecutePool.removeTask(key);
|
||||
for (String key : mCachePool.getAllTask().keySet()) {
|
||||
mCachePool.removeTask(key);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -26,6 +26,7 @@ import java.util.HashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@ -40,9 +41,9 @@ public class BaseCachePool<TASK extends AbsTask> implements IPool<TASK> {
|
||||
private Map<String, TASK> mCacheMap;
|
||||
private LinkedBlockingQueue<TASK> mCacheQueue;
|
||||
|
||||
public BaseCachePool() {
|
||||
BaseCachePool() {
|
||||
mCacheQueue = new LinkedBlockingQueue<>(MAX_NUM);
|
||||
mCacheMap = new HashMap<>();
|
||||
mCacheMap = new ConcurrentHashMap<>();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -25,6 +25,7 @@ import com.arialyy.aria.util.CommonUtil;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
@ -41,7 +42,7 @@ public class BaseExecutePool<TASK extends AbsTask> implements IPool<TASK> {
|
||||
BaseExecutePool() {
|
||||
mSize = getMaxSize();
|
||||
mExecuteQueue = new ArrayBlockingQueue<>(mSize);
|
||||
mExecuteMap = new HashMap<>();
|
||||
mExecuteMap = new ConcurrentHashMap<>();
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user