CompositeDisposable 是一个一次性的东西,如果调用了dispose 方法,那么之后加进来的 disposable 会自动dispose,所以不要试图在dispose 之后希望它还能重用。源码如下:
@Override
public boolean add(@NonNull Disposable d) {
ObjectHelper.requireNonNull(d, "d is null");
if (!disposed) {
synchronized (this) {
if (!disposed) {
OpenHashSet<Disposable> set = resources;
if (set == null) {
set = new OpenHashSet<Disposable>();
resources = set;
}
set.add(d);
return true;
}
}
}
d.dispose();
return false;
}