rx.functions.Action1; //2.X import io.reactivex.Observable; import io.reactivex.ObservableSource; import io.reactivex.ObservableTransformer....subscribe(onNext); //TODO subscription.unsubscribe(); //2.X public static final ObservableTransformer...IO_TRANSFORMER = new ObservableTransformer() { @Override public ObservableSource apply(Observable...Schedulers.io()) .observeOn(Schedulers.io()); } }; public static final ObservableTransformer... applySchedulers(ObservableTransformer transformer){ return (ObservableTransformer)transformer
import io.reactivex.FlowableTransformer; import io.reactivex.MaybeTransformer; import io.reactivex.ObservableTransformer...AndroidSchedulers.mainThread()); } /** * Observable 切换到主线程 */ public static ObservableTransformer...版本: import io.reactivex.FlowableTransformer import io.reactivex.MaybeTransformer import io.reactivex.ObservableTransformer...*/ object RxThreadUtils { /** * Observable 切换到主线程 */ fun observableToMain(): ObservableTransformer... { return ObservableTransformer { upstream -> upstream.subscribeOn(Schedulers.io
早在 RxJava1.x 版本就有了Observable.Transformer、Single.Transformer和Completable.Transformer,在2.x版本中变成了ObservableTransformer...public static ObservableTransformer transformer() { return...new ObservableTransformer() { @Override public ObservableSource...by Tony Shen on 2017/7/13. */ object RxJavaUtils { @JvmStatic fun observableToMain():ObservableTransformer... { return ObservableTransformer{ upstream -> upstream.subscribeOn
1.6 Transformer Tramsformer有很多种:ObservableTransformer,FlowableTransformer,SingleTransformer,MaybeTransformer...我们这里已ObservableTransformer为例: ObservableTransformer其实可以理解为Observable 转换器:可以通过它将一种类型的Observable转换成另一种类型的...就出现了: public class Transformer { public static ObservableTransformer switchSchedulers...() { return new ObservableTransformer() { @Override public ObservableSource...switchSchedulers()).subScribe(XXXX); 复制代码 所以我们知道了,我们想把一个Observable转变成另外一个Observable可以使用ObservableTransformer
Observable.Transformer 变成 ObservableTransformer 原先RxJava1的写法: /** * 跟compose()配合使用,比如ObservableUtils.wrap...ObservableUtils.wrap(obj).compose(toMain()) * @param * @return */ public static ObservableTransformer... toMain() { return new ObservableTransformer() { @Override
io.reactivex.ObservableTansformer 一个独立的接口 public static ObservableTransformer... io2MainObservable() { return new ObservableTransformer() { @Override...Schedulers.io()).observeOn(AndroidSchedulers.mainThread()); } }; } public static ObservableTransformer
adapterX.notifyDataSetChanged(); } } 剩下的则是我说的有关一些工具类了 RxHelper 调度类 public class RxHelper { public static ObservableTransformer... observableIO2Main(final Context context) { return new ObservableTransformer(...return composeContext(context, observable); } }; } public static ObservableTransformer
core.Observable; import io.reactivex.rxjava3.core.ObservableSource; import io.reactivex.rxjava3.core.ObservableTransformer...} }; } /* * * 统一线程处理 * * @param 指定的泛型类型 * @return ObservableTransformer...*/ public static ObservableTransformer Obs_io_main() { return new ObservableTransformer
mMaterialDialog.dismiss(); } } } 加入调度类,方便调用线程切换和解决内存泄漏的问题 public class RxSchedulers { public static <T ObservableTransformer...AndroidSchedulers.mainThread()); return composeContext(context, observable); }; } public static <T ObservableTransformer
首先定义一个ProgressUtils工具类,然后通过RxJava的ObservableTransformer做一个变换来处理Loading。...ProgressUtils代码如下: public class ProgressUtils { public static ObservableTransformer applyProgressBar...new DialogUtils(); dialogUtils.showProgress(activityWeakReference.get()); return new ObservableTransformer...}*/ } }); } }; } public static ObservableTransformer
public ObservableTransformer ensure(final String... permissions) { return new ObservableTransformer...Observable.just(true); } }); } }; }复制代码 我们可以看到返回了一个ObservableTransformer...这时候我们就又回到了最刚开始的ensure方法: public ObservableTransformer ensure(final String... permissions...) { return new ObservableTransformer() { @Override public ObservableSource
io.reactivex.ObservableTansformer 一个独立的接口 public static ObservableTransformer... io2MainObservable() { return new ObservableTransformer() { @Override...)).observeOn(AndroidSchedulers.mainThread()); } }; } public static ObservableTransformer
preventDuplicateClicksTransformer(windowDuration:Long=1000,timeUnit: TimeUnit=TimeUnit.MILLISECONDS): ObservableTransformer... { return ObservableTransformer { upstream -> upstream.throttleFirst(windowDuration
就是这一句 .compose(processStrategy) processStrategy是一个由你实现的 ObservableTransformer , 随意发挥即可 比如这个实现: ?
val transformer = ObservableTransformer { upstream -> upstream.map { it.toString() }....take(2) } Observable.just(1,2,3,4).compose(transformer).subscribe(observerStr) 创建了一个 ObservableTransformer
具体如何操作,我们接着看: public ObservableTransformer applyObservableAsync() { return new ObservableTransformer...observeOn(AndroidSchedulers.mainThread()); } }; } 上面代码可以看出,我把子线程和主线程进行了一个封装,然后返回了一个ObservableTransformer
doFinally doOnLifecycle doOnEach lateinit var disposable: Disposable // 封装了 doXXX 方法 val transformer = ObservableTransformer
lifecycle中的Observer * @param 泛型 * @return Observable */ public static ObservableTransformer... applySchedulers(final Observer observer) { return new ObservableTransformer()
要注意不要使用lifecycle中的Observer * @param 泛型 * @return Observable */ public static ObservableTransformer
领取专属 10元无门槛券
手把手带您无忧上云