真題解析
核心知識(shí)點(diǎn):
- 1、觀察者中的
onSubscribe運(yùn)行在哪個(gè)線程中? - 2、
subscribeOn上配對(duì)還是下配對(duì)? - 3、
observeOn上配對(duì)還是下配對(duì)?
原理:
- 1、設(shè)計(jì)模式:觀察者模式
- 2、設(shè)計(jì)模式:裝飾者,啥是裝飾者,俄羅斯套娃懂不懂
- 3、遞歸
提示
-
1、
subscribeOn方法對(duì)應(yīng)的是一個(gè)自驅(qū)動(dòng)主題,即:在subscribeActual中,自動(dòng)執(zhí)行subscribe。public final class ObservableDoOnLifecycle<T> extends AbstractObservableWithUpstream<T, T> { private final Consumer<? super Disposable> onSubscribe; private final Action onDispose; // .... @Override protected void subscribeActual(Observer<? super T> observer) { source.subscribe(new DisposableLambdaObserver<T>(observer, onSubscribe, onDispose)); } } 2、每次遇到
subscribeOn,主題就會(huì)產(chǎn)生一次分離,并執(zhí)行下游的onSubscribe。
分離的目的是為了上游的主題對(duì)象運(yùn)行在本次subscribeOn指定的線程里。