package biz;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import basic.UiThreadHandler;
public class CmdExecutor {
public static ExecutorService executorService = Executors
.newCachedThreadPool();
public static void exeInBackground(iCmd iCmd, iCmdListener iCmdListener) {
// TODO Auto-generated method stub
executorService.execute(new CmdWrapper(iCmd, iCmdListener));
}
public static void exeInFroground(iCmd iCmd, iCmdListener iCmdListener) {
// TODO Auto-generated method stub
// executorService.execute(new CmdWrapper(iCmd, iCmdListener));
iCmdListener.onPreExe();
if (iCmd.exe()) {
iCmdListener.onSucess();
} else {
iCmdListener.onFail();
}
}
private static class CmdWrapper implements Runnable {
iCmd cmd;
iCmdListener iCmdListener;
public CmdWrapper(iCmd cmd, biz.iCmdListener iCmdListener) {
// super();
this.cmd = cmd;
this.iCmdListener = iCmdListener;
}
public void run() {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
iCmdListener.onPreExe();
}
});
if (cmd.exe()) {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
iCmdListener.onSucess();
}
});
} else {
UiThreadHandler.post(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
iCmdListener.onFail();
}
});
}
}
}
}