zoukankan      html  css  js  c++  java
  • 安卓学习-其他-http网络工具-用了xutils

    有个项目当时写的,不是很完善,基本能用

    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();
            }
        }
    
        
    }
  • 相关阅读:
    IIS 无法下载EXE
    大数据ListView
    vss error reading from file
    fatal error LNK1107
    A Generic Singleton Class
    转 ORACLE 的FOR循环、游标、时间值函数、转换函数题目
    regsvr32.exe 会用
    MSChat 临时目录
    关于LinkedList的三种写法的效率
    旋转门压缩算法
  • 原文地址:https://www.cnblogs.com/weijj/p/3978494.html
Copyright © 2011-2022 走看看