gpt4 book ai didi

java - RxJava2 在调用完成或错误时会自动处理可观察对象吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:48:29 27 4
gpt4 key购买 nike

我对 RxJava 上的处理有疑问。我在 Github 上的 RxSwift 文档中找到了下面这句话。

When a sequence sends the completed or error event all internal resources that compute sequence elements will be freed.

To cancel production of sequence elements and free resources immediately, call dispose on the returned subscription.

如果我理解正确,资源(可观察对象)将在调用 onCompletedonError 后被释放。

那么问题来了,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);
}

关于java - RxJava2 在调用完成或错误时会自动处理可观察对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45589930/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com