修改IDownloadSchedulers实现

This commit is contained in:
AriaLyy
2016-11-21 23:35:58 +08:00
parent 0e88cf6bfe
commit f714782be0
8 changed files with 250 additions and 16 deletions

View File

@ -27,7 +27,7 @@ dependencies {
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
}
apply from: 'jcenter.gradle'
//apply from: 'jcenter.gradle'
// build a jar with source files
//task sourcesJar(type: Jar) {

View File

@ -157,13 +157,4 @@ public class DownloadManager {
}
mCommands.clear();
}
/**
* 设置下载器
*
* @param queue {@link ITaskQueue}
*/
public void setDownloadQueue(ITaskQueue queue) {
mTaskQueue = queue;
}
}

View File

@ -111,6 +111,10 @@ public class DownloadTaskQueue implements ITaskQueue {
}
}
@Override public int size() {
return mExecutePool.size();
}
@Override public void setDownloadNum(int downloadNum) {
mExecutePool.setDownloadNum(downloadNum);
}

View File

@ -14,7 +14,6 @@
* limitations under the License.
*/
package com.arialyy.downloadutil.core.queue;
import com.arialyy.downloadutil.core.DownloadEntity;
@ -27,6 +26,11 @@ import com.arialyy.downloadutil.core.task.Task;
*/
public interface ITaskQueue extends IDownloader {
/**
* 任务池队列大小
*/
public int size();
/**
* 设置下载任务数
*

View File

@ -20,6 +20,7 @@ package com.arialyy.downloadutil.core.scheduler;
import android.os.Message;
import android.util.Log;
import com.arialyy.downloadutil.core.DownloadEntity;
import com.arialyy.downloadutil.core.queue.ITaskQueue;
import com.arialyy.downloadutil.core.task.Task;
import com.arialyy.downloadutil.core.queue.pool.ExecutePool;
import com.arialyy.downloadutil.core.queue.DownloadTaskQueue;
@ -65,10 +66,10 @@ public class DownloadSchedulers implements IDownloadSchedulers {
/**
* 下载器任务监听
*/
OnTargetListener mTargetListener;
DownloadTaskQueue mQueue;
OnTargetListener mTargetListener;
ITaskQueue mQueue;
public DownloadSchedulers(DownloadTaskQueue downloadTaskQueue) {
public DownloadSchedulers(ITaskQueue downloadTaskQueue) {
mQueue = downloadTaskQueue;
}
@ -90,7 +91,7 @@ public class DownloadSchedulers implements IDownloadSchedulers {
switch (msg.what) {
case STOP:
case CANCEL:
if (mQueue.getExecutePool().size() != ExecutePool.mSize) {
if (mQueue.size() != ExecutePool.mSize) {
startNextTask(entity);
}
break;