package com.mogujie.tt.task;
import java.util.HashMap;
import java.util.Map;
import android.os.AsyncTask;
/**
* @Description: 简单封装AsyncTask
* @author ziye - ziye[at]mogujie.com
* @date 2014-4-16 下午5:34:46
*/
public abstract class MAsyncTask extends AsyncTask<Object, Integer, Object> implements ITask {
protected TaskMode executeMode = TaskMode.masync;
protected Map<String, Object> dataHolder = new HashMap<String, Object>();
protected TaskCallback callback;
protected IProcessing processing;
@Override
public TaskMode getExecuteMode() {
return executeMode;
}
@Override
protected Object doInBackground(Object... params) {
return doTask();
}
@Override
protected void onPostExecute(Object result) {
doCallback(result);
}
@Override
public void addParams(String name, Object value) {
dataHolder.put(name, value);
}
@Override
public Object getParams(String name) {
return dataHolder.get(name);
}
@Override
public ITask setCallBack(TaskCallback callback) {
this.callback = callback;
return this;
}
@Override
public void doCallback(Object result) {
if (null != callback) {
callback.callback(result);
}
}
public ITask setProcessing(IProcessing processing) {
this.processing = processing;
return this;
}
public void doProcessing(Object result) {
if (null != processing) {
processing.processing(result);
}
}
}