RxUtil.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.example.zhpan.banner.net;
  2. import com.example.zhpan.banner.net.common.LoadingTransformerCreator;
  3. import com.trello.rxlifecycle2.android.ActivityEvent;
  4. import com.trello.rxlifecycle2.android.FragmentEvent;
  5. import com.trello.rxlifecycle2.components.support.RxAppCompatActivity;
  6. import com.trello.rxlifecycle2.components.support.RxFragment;
  7. import io.reactivex.Observable;
  8. import io.reactivex.ObservableTransformer;
  9. import io.reactivex.android.schedulers.AndroidSchedulers;
  10. import io.reactivex.schedulers.Schedulers;
  11. @SuppressWarnings("unused")
  12. public class RxUtil {
  13. /**
  14. * 统一线程处理
  15. *
  16. * @return ObservableTransformer
  17. */
  18. public static <T> ObservableTransformer<T, T> rxSchedulerHelper(final RxAppCompatActivity activity, final boolean showLoading) { //compose简化线程
  19. return observable -> {
  20. Observable<T> compose = observable.subscribeOn(Schedulers.io())
  21. .observeOn(AndroidSchedulers.mainThread())
  22. .compose(activity.bindUntilEvent(ActivityEvent.DESTROY));
  23. if (showLoading) {
  24. return compose.compose(LoadingTransformerCreator.applyLoading(activity));
  25. } else {
  26. return compose;
  27. }
  28. };
  29. }
  30. /**
  31. * 统一线程处理
  32. *
  33. * @return ObservableTransformer
  34. */
  35. public static <T> ObservableTransformer<T, T> rxSchedulerHelper(final RxFragment fragment, final boolean showLoading) {
  36. return observable -> {
  37. Observable<T> compose = observable.subscribeOn(Schedulers.io())
  38. .observeOn(AndroidSchedulers.mainThread())
  39. .compose(fragment.bindUntilEvent(FragmentEvent.DESTROY));
  40. if (showLoading) {
  41. return compose.compose(LoadingTransformerCreator.applyLoading(fragment.getActivity()));
  42. } else {
  43. return compose;
  44. }
  45. };
  46. }
  47. /**
  48. * 统一线程处理
  49. *
  50. * @return ObservableTransformer
  51. */
  52. public static <T> ObservableTransformer<T, T> rxSchedulerHelper() { //compose简化线程
  53. return observable -> observable.subscribeOn(Schedulers.io())
  54. .observeOn(AndroidSchedulers.mainThread());
  55. }
  56. }