Contract层
public interface CarContract {
//定义一个Presenter的类
public abstract class CarPresenter{
public abstract void show(String path, HashMap<String,String>map);
}
//定义一个Model层
public interface CarModel{
void show(String path, HashMap<String,String>map, ResponseCallBack callBack);
}
//定义一个View层
public interface CarView{
void success(List<CarBean.Data> data);
void failure(String error);
}
}
Model层
public class CarModel implements CarContract.CarModel {
private Handler handler=new Handler();
@Override
public void show(String path, HashMap<String, String> map, final ResponseCallBack callBack) {
OkHttpUtils.getInstance().doPost(path, map, new OkHttpCallBack() {
@Override
public void success(final String result) {
handler.post(new Runnable() {
@Override
public void run() {
callBack.success(result);
}
});
}
@Override
public void failure(final String error) {
handler.post(new Runnable() {
@Override
public void run() {
callBack.failure(error);
}
});
}
});
}
}
Prsenter层
public class CarPresenter extends CarContract.CarPresenter {
private Handler handler=new Handler();
private CarModel model;
private CarContract.CarView view;
public CarPresenter(CarContract.CarView view) {
this.model = new CarModel();
this.view = view;
}
@Override
public void show(String path, HashMap<String, String> map) {
if (model!=null){
model.show(path, map, new ResponseCallBack() {
@Override
public void success(final String result) {
if (view!=null){
final CarBean carBean = new Gson().fromJson(result, CarBean.class);
handler.post(new Runnable() {
@Override
public void run() {
view.success(carBean.data);
}
});
}
}
@Override
public void failure(String error) {
if (view!=null){
view.failure(error);
}
}
});
}
}
//防止内存泄漏
public void setcacle(){
if (view!=null){
view=null;
OkHttpUtils.getInstance().cancle();
}
}
}