package com.ectrip.cyt.callback; import android.content.Context; import android.os.Handler; import android.os.Message; import com.alibaba.fastjson.JSON; import com.ectrip.trips.net.HttpHelper; import com.google.gson.Gson; /** * 回调类 * * @param */ public abstract class HttpCallback implements ControlHandler { private boolean stop; private boolean loading = true; public abstract void onPreCallback(); public abstract void onCompletedCallback(T result); public abstract void afterCompletedCallback(T result); public abstract void onFailureCallback(String FailureStr); public abstract void onStopCallback(); private final static int PARSE_SUCESS = 104; private final static int PARSE_FAILURE = 105; public void stop() { stop = true; }; public boolean isStoped() { return stop; }; private void setLoading(boolean loading) { this.loading = loading; } @Override public boolean isLoading() { return this.loading; } public abstract void onAgainParseCallback(Object parse); /** * 再次解析 * * @param * @return */ public void parse2(final String data, final Class cls, Context mContext) { // 用于子线程与主线程通信的Handler final Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case PARSE_SUCESS: onAgainParseCallback(msg.obj); break; case PARSE_FAILURE: onFailureCallback(msg.obj.toString()); break; default: break; } } }; HttpHelper.getInstance(mContext).executorService.submit(new Runnable() { public void run() { try { // mHandler.sendMessage(mHandler.obtainMessage(PARSE_SUCESS, // JSON.parseObject(data, cls))); mHandler.sendMessage(mHandler.obtainMessage(PARSE_SUCESS, new Gson().fromJson(data,cls))); } catch (Exception e) { e.printStackTrace(); mHandler.sendMessage(mHandler.obtainMessage(PARSE_FAILURE, "解析错误!!")); } } }); } }