public interface MyCallBack {
//成功
void setData(User data);
//失败
void setError(String error);
}
public interface Model {
void getData(String mUrl, MyCallBack callBack);
}
public class ModelImpl implements Model{
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 0:
String jsonStr= (String) msg.obj;
Gson gson=new Gson();
User data= gson.fromJson(jsonStr,User.class);
callBack.setData(data);
break;
}
}
};
private MyCallBack callBack;
@Override
public void getData(final String mUrl, final MyCallBack callBack) {
this.callBack=callBack;
new Thread(new Runnable() {
@Override
public void run() {
try {
String ok = OkHttps.getintent().get(mUrl);
handler.sendMessage(handler.obtainMessage(0,ok));
} catch (IOException e) {
Looper.prepare();
callBack.setError("...");
Looper.loop();
}
}
}).start();
}
}
public interface Perener {
void startRequest(String mUrl);
}
public class PerenerImpl implements Perener{
private IView iView;
private ModelImpl model;
public PerenerImpl(IView iView) {
this.iView = iView;
model=new ModelImpl();
}
@Override
public void startRequest(String mUrl) {
this.model.getData(mUrl, new MyCallBack() {
@Override
public void setData(User data) {
iView.setData(data);
}
@Override
public void setError(String error) {
iView.setError(error);
}
});
}
}
//IView 和MyCallBack内容一样
public interface IView {
void setData(User data);
//失败
void setError(String error);
}