我对RxJava的处理有疑问 . 我在Github上的RxSwift文档中找到了这个句子 .
当序列发送完成或错误事件时,将释放计算序列元素的所有内部资源 . 要立即取消序列元素和免费资源的生成,请在返回的订阅上调用dispose .
如果我理解正确,资源(observables)将在他们调用 onCompleted 或 onError 后被释放 .
onCompleted
onError
所以问题是,RxJava是否像RxSwift一样做,或者我需要自己调用dispose?
谢谢
是的,所有相关资源将自动处理 . 为了说明使用RxJava 2运行以下测试:
boolean isDisposed = false; @Test public void testDisposed(){ TestObserver<Integer> to = Observable.<Integer>create(subscriber -> { subscriber.setDisposable(new Disposable() { @Override public boolean isDisposed() { return isDisposed; } @Override public void dispose() { isDisposed = true; } }); subscriber.onComplete(); }).test(); to.assertComplete(); assertTrue(isDisposed); }
1 回答
是的,所有相关资源将自动处理 . 为了说明使用RxJava 2运行以下测试: