package com.banking.xc.utils;
import java.util.ArrayList;
import java.util.List;
public class MyHandlerList {
private List<MyHandler> taskList = new ArrayList<MyHandler>();
private int currentTaskIndex;
private boolean multiThread;
public interface MyHandler {
void run();
}
public MyHandlerList(boolean multiThread){
this.multiThread = multiThread;
}
public void add(MyHandler task) {
taskList.add(task);
}
public void start() {
if (0 == currentTaskIndex) {
doNext();
}
}
public void doNext() {
int i = currentTaskIndex;
if (Log.D) {
Log.d("TaskList", "doNext() i -->> " + currentTaskIndex);
}
currentTaskIndex++;
if (i < taskList.size()) {
taskList.get(i).run();
if(!multiThread){
currentTaskIndex = i;// 恢复层次指针到本层
}
}
}
public void doLast() {
int i = taskList.size() - 1;
if (Log.D) {
Log.d("TaskList", "doLast() i -->> " + currentTaskIndex);
}
currentTaskIndex = i + 1;
taskList.get(i).run();
if(!multiThread){
currentTaskIndex = i;// 恢复层次指针到本层
}
}
}