From 73b10892e6bd13135303a33eb183b7c07a63c951 Mon Sep 17 00:00:00 2001 From: ervin Date: Fri, 2 Mar 2018 14:03:18 +0800 Subject: [PATCH] =?UTF-8?q?1=EF=BC=8C=E6=B7=BB=E5=8A=A0Rxlife?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +++ .../ervin/mvp/presenter/BasePresenter.java | 35 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index f5415a6..16faad3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -39,6 +39,10 @@ dependencies { compile 'com.squareup.retrofit2:converter-gson:2.3.0' compile 'io.reactivex.rxjava2:rxjava:2.1.6' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' + compile 'com.trello.rxlifecycle2:rxlifecycle:2.2.1' + compile 'com.trello.rxlifecycle2:rxlifecycle-android:2.2.1' + compile 'com.trello.rxlifecycle2:rxlifecycle-components:2.2.1' + compile 'com.squareup.okhttp3:okhttp:3.9.0' compile 'com.squareup.okhttp3:logging-interceptor:3.9.0' compile 'com.jakewharton:butterknife:8.8.1' diff --git a/app/src/main/java/com/ervin/mvp/presenter/BasePresenter.java b/app/src/main/java/com/ervin/mvp/presenter/BasePresenter.java index 2d0fa04..0deb1ac 100644 --- a/app/src/main/java/com/ervin/mvp/presenter/BasePresenter.java +++ b/app/src/main/java/com/ervin/mvp/presenter/BasePresenter.java @@ -4,6 +4,11 @@ import android.util.Log; import com.ervin.mvp.ui.iview.IBaseView; +import com.trello.rxlifecycle2.LifecycleTransformer; +import com.trello.rxlifecycle2.android.ActivityEvent; +import com.trello.rxlifecycle2.android.FragmentEvent; +import com.trello.rxlifecycle2.components.support.RxAppCompatActivity; +import com.trello.rxlifecycle2.components.support.RxFragment; import io.reactivex.disposables.CompositeDisposable; @@ -39,4 +44,34 @@ public void detachView() { iView = null; } } + + /** + * RxLifecycle支持 + * @param event + * @param + * @return + */ + protected LifecycleTransformer bindUntilEvent(ActivityEvent event){ + if(iView instanceof RxAppCompatActivity){ + RxAppCompatActivity activity = (RxAppCompatActivity) iView; + return activity.bindUntilEvent(event); + } + + throw new RuntimeException("Confirm mView is instance of RxAppCompatActivity"); + } + + /** + * RxLifecycle支持 + * @param event + * @param + * @return + */ + protected LifecycleTransformer bindUntilEvent(FragmentEvent event){ + if(iView instanceof RxFragment){ + RxFragment fragment = (RxFragment) iView; + return fragment.bindUntilEvent(event); + } + + throw new RuntimeException("Confirm mView is instance of RxFragment"); + } }