Android技术知识Android开发Android开发

「开源框架」RxJava(2)线程控制

2018-08-08  本文已影响20人  dongbingliu
RxJava

RxJava 异步任务操作,核心功能在于对线程的控制与调度,Android 编程中更新 UI 必须在主线程。线程调度关键字 subscribeOn()「设置被观察者线程」、observeOn()「设置观察者线程,默认参数observeOn(AndroidSchedulers.mainThread() )

RxJava 内置线程:

伪代码参考

Observable.create(new ObservableOnSubscribe<String>() {
        @Override
        public void subscribe(ObservableEmitter<String> emitter) throws Exception {
           
            emitter.onNext("MrLiu");
            emitter.onNext("HelloWord");
            emitter.onComplete();
        }
    }).map(new Function<String, String>() {
        @Override
        public String apply(String string) throws Exception {
            return "Gospell" + string;
        }
    }).subscribeOn(Schedulers.newThread())//设置被观察在子线程工作
      .observeOn(AndroidSchedulers.mainThread())//设置观察者在主线程操作
      .doOnNext(new Consumer<String>() {
            @Override
            public void accept(String s) throws Exception {
                Logger.d(s);
            }
    }).subscribe(new Observer<String>() {
        @Override
        public void onSubscribe(Disposable d) {
            Log.d(TAG, "onSubscribe: ");
        }

        @Override
        public void onNext(String string) {
            Logger.d(string);

        }

        @Override
        public void onError(Throwable e) {
            Log.d(TAG, "onError: ");
        }

        @Override
        public void onComplete() {
            Log.d(TAG, "onComplete: ");
        }
});

参考文章:
https://juejin.im/post/5848dd11b123db0066030123

上一篇 下一篇

猜你喜欢

热点阅读