Android 在MVP上改造2/RxJava2的正确方法

Android 在MVP上改造2/RxJava2的正确方法,android,rx-java,retrofit2,mvp,rx-android,Android,Rx Java,Retrofit2,Mvp,Rx Android,几天后,我可以独立地使用RxJava2和Reformation2。现在,我正试图用RxJava2和RxJava2来完成干净体系结构的挑战。我在本地机器上为一个简单的REST服务做了一个nodejs服务器 这就是我到目前为止所得到的,它工作得很好,但我正在寻找正确的方法来做到这一点 在我的演示者课堂上: 感谢您抽出时间使用MVP模式实现使用RxJava2/RxAndroid的RxJava2/RxAndroid的正确改造方法,因为您需要使用observer订户方法进行清除。要更好地理解MVP模式,请

几天后,我可以独立地使用RxJava2和Reformation2。现在,我正试图用RxJava2和RxJava2来完成干净体系结构的挑战。我在本地机器上为一个简单的REST服务做了一个nodejs服务器

这就是我到目前为止所得到的,它工作得很好,但我正在寻找正确的方法来做到这一点

在我的演示者课堂上:


感谢您抽出时间

使用MVP模式实现使用RxJava2/RxAndroid的RxJava2/RxAndroid的正确改造方法,因为您需要使用observer订户方法进行清除。要更好地理解MVP模式,请查看此示例:

 interface BaseContract {
    interface BaseView {
        //Methods for View
        void onDoSomething();
    }

    interface BasePresenter {
        void doSomething();

    }
}

class BaseMainPresenter implements BaseContract.BasePresenter {
    BaseContract.BaseView view;

    BaseMainPresenter(BaseContract.BaseView view) {
        this.view = view;
    }

    @Override
    public void doSomething() {
        if (view != null)
            view.onDoSomething();
    }
}

class DemoClass implements BaseContract.BaseView {

    //Create object of Presenter 

    /****
     * Example :
     * BaseMainPresenter baseMainPresenter = new BaseMainPresenter(this);
     */
    @Override
    public void onDoSomething() {
        //Deal with Context here.
    }
}
关于这个MVP模式,您需要使用RxJava实现改型2,您可以参考我的一个追溯示例

  • 供参考-
Observer observer = new Observer() {
    @Override
    public void onSubscribe(Disposable d) { Log.d(TAG,"onSubscribe, thread name >> "+Thread.currentThread().getName()); }

    @Override
    public void onNext(Object value) {
        Log.d(TAG,"on next,  thread name >> "+Thread.currentThread().getName());
        try{
            List<BImagenes> list = (List<BImagenes>) value;
            MySingleton.setList(list);//save the results in a Singleton
            Log.d(TAG,"i got my list parsed as POJO, with retrofit in thread >> "+Thread.currentThread().getName()+", list size >> "+list.size());
        }catch (Exception e){
            Log.d(TAG,"error in parsing >> "+e.toString());
        }

    }

    @Override
    public void onError(Throwable e) { Log.d(TAG,"onError error >>"+e.toString()); }

    @Override
    public void onComplete() {
        Log.d(TAG,"onCompleted  thread name >> "+Thread.currentThread().getName());
        presenterComm.showListView(MySingleton.getList());//Throught a communication interface implemented in Activity, I update the ListView
    }
};
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
 interface BaseContract {
    interface BaseView {
        //Methods for View
        void onDoSomething();
    }

    interface BasePresenter {
        void doSomething();

    }
}

class BaseMainPresenter implements BaseContract.BasePresenter {
    BaseContract.BaseView view;

    BaseMainPresenter(BaseContract.BaseView view) {
        this.view = view;
    }

    @Override
    public void doSomething() {
        if (view != null)
            view.onDoSomething();
    }
}

class DemoClass implements BaseContract.BaseView {

    //Create object of Presenter 

    /****
     * Example :
     * BaseMainPresenter baseMainPresenter = new BaseMainPresenter(this);
     */
    @Override
    public void onDoSomething() {
        //Deal with Context here.
    }
}