featuregood first issue
Description
OkDownload Version
1.0.5
Problem Describe
判断任务是否在运行的代码:
public synchronized boolean isRunning(DownloadTask task) {
Util.d(TAG, "isRunning: " + task.getId());
for (DownloadCall call : runningSyncCalls) {
if (call.isCanceled()) continue;
if (call.equalsTask(task)) {
return true;
}
}
for (DownloadCall call : runningAsyncCalls) {
if (call.isCanceled()) continue;
if (call.equalsTask(task)) {
return true;
}
}
return false;
}
是不是最好再判断下任务是否正在结束?类似下面:
public synchronized boolean isRunning(DownloadTask task) {
Util.d(TAG, "isRunning: " + task.getId());
for (DownloadCall call : runningSyncCalls) {
if (call.isCanceled()) continue;
if (call.equalsTask(task)) {
return !call.isFinishing();
}
}
for (DownloadCall call : runningAsyncCalls) {
if (call.isCanceled()) continue;
if (call.equalsTask(task)) {
return !call.isFinishing();
}
}
return false;
}
因为在taskEnd回调中,如果想获取任务状态,这个时候会获取到正在运行