Arms之MVP

===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 {

                    }
                });
    }

猜你喜欢

转载自blog.csdn.net/qq_42859231/article/details/83035911
MVP