RxJava----异步、响应式编程
1.优势:
异步,无需手动创建线程,并具备线程切换能力。
支持链式调用
各种操作符,功能非常强大
简化了异常的处理
2.角色
观察者:Observer 观察事件变化并处理的角色
被观察者:触发事件并决定什么时候发送事件的主要角色
Observable、Flowable、Single、Completeable、Maybe
订阅:subseribe 被观察者->观察->观察者 建立连接
3.题外话
解决As中无法运行Java main():.idea/gradle.xml文件中添加<option name="delegatedBuild" value="false" />;
目的:不委托gradle进行构建。由jvm执行Java类的main方法,而不是gradle当做task来执行
4. emitter的onComplete()与onError()互斥
5.subseribe()有多个重载方法
public final Disposable subscribe() {}
public final Disposable subscribe(Consumer<? super T> onNext) {}
public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError) {}
public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete) {}
public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete, Consumer<? super Disposable> onSubscribe) {}
public final void subscribe(Observer<? super T> observer) {}