- RxJava 教程
- RxJava - 主页
- RxJava - 概述
- RxJava - 环境设置
- 观测值
- RxJava - Observable 的工作原理
- RxJava - 创建 Observables
- RxJava - 单个可观察的
- RxJava - 也许可观察
- RxJava - 完整的可观察的
- RxJava - 使用 CompositeDisposable
- 运营商
- RxJava - 创建运算符
- RxJava - 转换运算符
- RxJava - 过滤运算符
- RxJava - 组合运算符
- RxJava - 实用操作符
- RxJava - 条件运算符
- RxJava - 数学运算符
- RxJava - 可连接运算符
- 科目
- RxJava - 主题
- RxJava - 发布主题
- RxJava - Behave主题
- RxJava-ReplaySubject
- RxJava-AsyncSubject
- 调度程序
- RxJava - 调度程序
- RxJava - 蹦床调度程序
- RxJava - 新线程调度程序
- RxJava - 计算调度程序
- RxJava - IO 调度程序
- RxJava - 来自调度程序
- 各种各样的
- RxJava - 缓冲
- RxJava - 窗口化
- RxJava 有用资源
- RxJava - 快速指南
- RxJava - 有用的资源
- RxJava - 讨论
RxJava - 使用 CompositeDisposable
CompositeDisposable 类表示一个可以容纳多个一次性物品的容器,并提供添加和删除一次性物品的 O(1) 复杂度。
类别声明
以下是io.reactivex.disposables.CompositeDisposable类的声明-
public final class CompositeDisposable extends Object implements Disposable, io.reactivex.internal.disposables.DisposableContainer
复合材料一次性示例
使用您选择的任何编辑器(例如 C:\> RxJava)创建以下 Java 程序。
ObservableTester.java
import io.reactivex.Maybe;
import io.reactivex.Single;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;
import io.reactivex.observers.DisposableMaybeObserver;
import io.reactivex.observers.DisposableSingleObserver;
import io.reactivex.schedulers.Schedulers;
import java.util.concurrent.TimeUnit;
public class ObservableTester {
public static void main(String[] args) throws InterruptedException {
CompositeDisposable compositeDisposable = new CompositeDisposable();
//Create an Single observer
Disposable disposableSingle = Single.just("Hello World")
.delay(2, TimeUnit.SECONDS, Schedulers.io())
.subscribeWith(
new DisposableSingleObserver<String>() {
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onSuccess(String value) {
System.out.println(value);
}
});
//Create an observer
Disposable disposableMayBe = Maybe.just("Hi")
.delay(2, TimeUnit.SECONDS, Schedulers.io())
.subscribeWith(new DisposableMaybeObserver<String>() {
@Override
public void onError(Throwable e) {
e.printStackTrace();
}
@Override
public void onSuccess(String value) {
System.out.println(value);
}
@Override
public void onComplete() {
System.out.println("Done!");
}
});
Thread.sleep(3000);
compositeDisposable.add(disposableSingle);
compositeDisposable.add(disposableMayBe);
//start observing
compositeDisposable.dispose();
}
}
验证结果
使用javac编译器编译该类,如下所示 -
C:\RxJava>javac ObservableTester.java
现在按如下方式运行 ObservableTester -
C:\RxJava>java ObservableTester
它应该产生以下输出 -
Hello World Hi