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

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方法啦!

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




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值