Volley的Contract+Model+Presenter

//Contract
public interface Contract {

//Iview
interface Iview{
void getRequest(String data);
}

//Imodel
interface Imodel{
void getShow(Context context,String url,CallBack scallBack);
interface CallBack{
void onSuccess(String list);
void onFail();
}
}
//Ipresenter
interface Ipresenter{
void attch(MainActivity Iview);
void detch();
void show(Context context,String url);
}

}

//Model+网络判断
public class Model implements Contract.Imodel {

private boolean net;
private Handler handler=new Handler();
@Override
public void getShow(final Context context, String url, final CallBack scallBack){
    net = HttpVolley.getInstance().isNet(context);
    if (net){
        HttpVolley.getInstance().HttpVolleyGet(url, new HttpVolley.VolleyCallBack() {
            @Override
            public void onSuccess(String data) {
                scallBack.onSuccess(data);
            }

            @Override
            public void onFail(VolleyError error) {
                scallBack.onFail();
            }
        });
    }else{
        //子线程
        new Thread(new Runnable() {
            @Override
            public void run() {
                //handler切换主线程
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(context,"网络链接失败", Toast.LENGTH_LONG).show();
                    }
                });
            }
        }).start();
    }
}

}

//Presenter
public class Presenter implements Contract.Ipresenter {

private Model model;
private MainActivity iview;

@Override
public void attch(MainActivity Iview) {
    model = new Model();
    this.iview=Iview;
}

@Override
public void detch() {
   if(model!=null){
       model=null;
   }
   if (iview!=null){
       iview=null;
   }
}

@Override
public void show(Context context,String url) {
    model.getShow(context, url, new Contract.Imodel.CallBack() {
        @Override
        public void onSuccess(String list) {
            iview.getRequest(list);
        }

        @Override
        public void onFail() {
        }
    });
}

}

猜你喜欢

转载自blog.csdn.net/weixin_44668084/article/details/89364641