您的位置:首页 > 理论基础 > 计算机网络

安卓学习-其他-http网络工具-用了xutils

2014-09-18 08:54 232 查看
有个项目当时写的,不是很完善,基本能用

package org.excsoft.g;

import java.lang.reflect.ParameterizedType;

import org.excsoftj.m.Msg;

import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Handler;
import android.os.Message;

import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class MyRequestCallBack<T>  extends RequestCallBack<T>{
boolean showFlag=false;
boolean cancelFlag=false;
public boolean success=false;
public Msg returnMsg=new Msg();
private ProgressDialog pd;
private Context context;
private Handler mHandler;
boolean canCanel=false;
java.lang.Class cls;
int delayedTime=500;
String msg11;
//private HttpHandler hddd;

public MyRequestCallBack(Context context,boolean canCanel,java.lang.Class cls,String msg11){
super.onStart();
this.context=context;
this.canCanel=canCanel;
this.cls=cls;
this.msg11=msg11;
}

public MyRequestCallBack(Context context,boolean canCanel,java.lang.Class cls,String msg11,int delayedTime){
super.onStart();
this.context=context;
this.canCanel=canCanel;
this.cls=cls;
this.msg11=msg11;
this.delayedTime=delayedTime;
}

public void onStart() {
showFlag=true;
cancelFlag=false;
Message message=new Message();
message.what=1;
mHandler=new Handler()
{
public void handleMessage(Message msg)
{
if(showFlag){
pd=ProgressDialog.show(context, "", msg11,true,canCanel);
pd.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface dialog) {
cancelFlag=true;
}
});
}
super.handleMessage(msg);
}
};
mHandler.sendMessageDelayed(message,delayedTime);
}

public void onSuccess(ResponseInfo<T>  responseInfo) {
try{
showFlag=false;
if(pd!=null){
pd.dismiss();

}
mHandler.removeMessages(1);

if(!cancelFlag){
final XStream xstream = new XStream(new DomDriver());
xstream.ignoreUnknownElements();
xstream.alias("msg", Msg.class);
xstream.alias("item", cls);
String res=responseInfo.result+"";
if(res.indexOf("flag")>0){
returnMsg=(Msg)xstream.fromXML(res);
if(returnMsg.getFlag().equals("1")){
success=true;
}else{
final String sm=returnMsg.getSm();
new AlertDialog.Builder(context).setTitle("提示").setMessage(sm).setNegativeButton("确定", null).show();
}
}else{
new AlertDialog.Builder(context).setTitle("失败")
.setMessage("原因:网络不可用").setNegativeButton("确定", null).show();
}

}
}catch(Exception e){
new AlertDialog.Builder(context).setTitle("失败")
.setMessage("原因:网络不可用").setNegativeButton("确定", null).show();
}
}

//    @Override
//    public void onLoading(long total, long current, boolean isUploading) {
//        super.onLoading(total, current, isUploading);
//        if(cancelFlag&&(hddd!=null)){
//            hddd.stop();
//        }
//    }

@Override
public void onFailure(HttpException error, String msg) {
if(pd!=null){
pd.dismiss();
}
mHandler.removeMessages(1);

if(!cancelFlag){
new AlertDialog.Builder(context).setTitle("失败")
.setMessage("原因:网络不可用").setNegativeButton("确定", null).show();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: