===MainContract=
public interface MainContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
**void showData(News news);**
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
**Observable<News> responseMsg();**
}
===Model=
@Inject
Gson mGson;
@Inject
Application mApplication;
@Inject
public MainModel(IRepositoryManager repositoryManager) {
super(repositoryManager);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mGson = null;
this.mApplication = null;
}
@Override
public Observable<News> responseMsg() {
MService mService = mRepositoryManager.obtainRetrofitService(MService.class);
Observable<News> zhan = mService.getZhan();
return zhan;
}
===preso=
@SuppressLint("CheckResult")
public void getshowdata(){
Observable<News> requestshowdata = mModel.requestshowdata();
requestshowdata.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Consumer<News>() {
@Override
public void accept(News news) throws Exception {
mRootView.data(news);
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
}
});
}