parent
b191bb2470
commit
1f3bd90b3b
@ -1,120 +0,0 @@ |
|||||||
/* |
|
||||||
* Copyright (C) 2016 AriaLyy(https://github.com/AriaLyy/Aria)
|
|
||||||
* |
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
||||||
* you may not use this file except in compliance with the License. |
|
||||||
* You may obtain a copy of the License at |
|
||||||
* |
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* |
|
||||||
* Unless required by applicable law or agreed to in writing, software |
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS, |
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||||
* See the License for the specific language governing permissions and |
|
||||||
* limitations under the License. |
|
||||||
*/ |
|
||||||
package com.arialyy.aria.core.queue; |
|
||||||
|
|
||||||
import android.os.Handler; |
|
||||||
import android.os.Message; |
|
||||||
import android.util.SparseArray; |
|
||||||
import com.arialyy.aria.core.inf.AbsEntity; |
|
||||||
import com.arialyy.aria.core.inf.AbsTask; |
|
||||||
import com.arialyy.aria.core.inf.AbsTaskEntity; |
|
||||||
|
|
||||||
/** |
|
||||||
* Created by Aria.Lao on 2017/8/3. |
|
||||||
* 队列控制器,用于处理各种命令 |
|
||||||
*/ |
|
||||||
public class QueueControl implements Handler.Callback { |
|
||||||
/** |
|
||||||
* 获取任务命令 |
|
||||||
*/ |
|
||||||
public static final int CMD_GET_TASK = 0xa1; |
|
||||||
/** |
|
||||||
* 创建任务命令 |
|
||||||
*/ |
|
||||||
public static final int CMD_CREATE_TASK = 0xa2; |
|
||||||
/** |
|
||||||
* 启动任务命令 |
|
||||||
*/ |
|
||||||
public static final int CMD_START_TASK = 0xa3; |
|
||||||
/** |
|
||||||
* 停止任务命令 |
|
||||||
*/ |
|
||||||
public static final int CMD_STOP_TASK = 0xa4; |
|
||||||
/** |
|
||||||
* 删除任务命令 |
|
||||||
*/ |
|
||||||
public static final int CMD_CANCEL_TASK = 0xa5; |
|
||||||
/** |
|
||||||
* 停止所有任务命令 |
|
||||||
*/ |
|
||||||
public static final int CMD_STOP_ALL_TASK = 0xa6; |
|
||||||
/** |
|
||||||
* 删除所有任务命令 |
|
||||||
*/ |
|
||||||
public static final int CMD_CANCEL_ALL_TASK = 0xa7; |
|
||||||
|
|
||||||
/** |
|
||||||
* 队列类型为单文件下载队列 |
|
||||||
*/ |
|
||||||
public static final int TYPE_SIMPLE_DOWNLOAD_QUEUE = 0xc1; |
|
||||||
/** |
|
||||||
* 队列类型为任务组下载队列 |
|
||||||
*/ |
|
||||||
public static final int TYPE_SIMPLE_DOWNLOAD_GROUP_QUEUE = 0xc2; |
|
||||||
/** |
|
||||||
* 队列类型为单文件上传队列 |
|
||||||
*/ |
|
||||||
public static final int TYPE_SIMPLE_UPLOAD_QUEUE = 0xc3; |
|
||||||
|
|
||||||
private Handler outHandler; |
|
||||||
private AbsTaskQueue queue; |
|
||||||
|
|
||||||
public QueueControl(Handler.Callback callback, int type) { |
|
||||||
outHandler = new Handler(callback); |
|
||||||
switch (type) { |
|
||||||
case TYPE_SIMPLE_DOWNLOAD_QUEUE: |
|
||||||
queue = DownloadTaskQueue.getInstance(); |
|
||||||
break; |
|
||||||
case TYPE_SIMPLE_DOWNLOAD_GROUP_QUEUE: |
|
||||||
queue = DownloadGroupTaskQueue.getInstance(); |
|
||||||
break; |
|
||||||
case TYPE_SIMPLE_UPLOAD_QUEUE: |
|
||||||
queue = UploadTaskQueue.getInstance(); |
|
||||||
break; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
@Override public boolean handleMessage(Message msg) { |
|
||||||
switch (msg.what) { |
|
||||||
case CMD_GET_TASK: |
|
||||||
outHandler.obtainMessage(CMD_GET_TASK, queue.getTask(((AbsEntity) msg.obj).getKey())) |
|
||||||
.sendToTarget(); |
|
||||||
break; |
|
||||||
case CMD_CREATE_TASK: |
|
||||||
SparseArray params = (SparseArray) msg.obj; |
|
||||||
outHandler.obtainMessage(CMD_CREATE_TASK, |
|
||||||
queue.createTask(String.valueOf(params.get(1)), (AbsTaskEntity) params.get(2))) |
|
||||||
.sendToTarget(); |
|
||||||
break; |
|
||||||
case CMD_START_TASK: |
|
||||||
queue.startTask((AbsTask) msg.obj); |
|
||||||
break; |
|
||||||
case CMD_STOP_TASK: |
|
||||||
queue.stopTask((AbsTask) msg.obj); |
|
||||||
break; |
|
||||||
case CMD_CANCEL_TASK: |
|
||||||
queue.cancelTask((AbsTask) msg.obj); |
|
||||||
break; |
|
||||||
case CMD_STOP_ALL_TASK: |
|
||||||
queue.stopAllTask(); |
|
||||||
break; |
|
||||||
case CMD_CANCEL_ALL_TASK: |
|
||||||
queue.removeAllTask(); |
|
||||||
break; |
|
||||||
} |
|
||||||
return true; |
|
||||||
} |
|
||||||
} |
|
Loading…
Reference in new issue