//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() {
}
});
}
}