当RxLifecycle遇到MVP 在P中没有Bind怎么破?

来源:互联网 发布:手机淘宝登录没反应了 编辑:程序博客网 时间:2024/05/16 14:41

https://github.com/trello/RxLifecycle

看完rxLifeCycle 你会发现 好方便啊~但是在MVP中 尤其是P中没有bindToLifeCycle啊 怎么破?

解决方案:

搞一个接口实现

public interface IParaView extends IBase {    void updateData();    <T> Observable.Transformer<T, T> bindToLifecycle();}
然后像这样调就行了

    void bindDatas_rx() {        bindDataObservable.subscribeOn(Schedulers.io()).doOnSubscribe(new Action0() {            @Override            public void call() {                pDialog.show();                pDialog.setCancelable(false);            }        }).compose(getView().bindToLifecycle()).subscribeOn(AndroidSchedulers.mainThread()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<String>() {            @Override            public void onCompleted() {                Log.i(TAG, "onCompleted: ");                getView().updateData();                pDialog.dismiss();                com.orhanobut.logger.Logger.t(TAG).d("ConfigParaList size%s", mDatas.size());            }            @Override            public void onError(Throwable e) {                Log.i(TAG, "onError: " + e.toString());            }            @Override            public void onNext(String s) {                Log.i(TAG, "onNext: state:" + s);            }        });    }
我的继承关系是这样的:

public class SetupAlgorithmparameterFragment extends BaseFragment<IParaView, SetupAlgorithmparaPresenter>        implements LoadMoreAdapter.OnLoadMoreListener, IParaView {
中文-使用详解
也就是说这个bind在RxFrament中,我的Presenter访问不到,只要通过接口回调,而RxFragment实现了这个接口,自然就调用的RxFragment中的Bind方法啦!

我也测试了一下,的确如此。




0 0
原创粉丝点击