Rx java RxJava:如何从一个可观察对象中取消订阅一个主题

Rx java RxJava:如何从一个可观察对象中取消订阅一个主题,rx-java,rx-java3,Rx Java,Rx Java3,使用RxJava3,给定一个可观察的和一个主题,我可以将主题订阅到可观察的: 可观察。订阅(主题);//返回void,而不是订阅 后来,我的受试者对可观察对象不再感兴趣,如何从可观察对象中取消订阅?我认为最简单的选择是使用返回a的,并让每个处理程序对您的受试者调用适当的方法,如下所示: d=可观察 .订阅(主题::onNext,主题::onError,主题::onComplete); //后来 d、 处置(); 您还可以创建一个将所有消息转发到主题,并使用而不是订阅,尽管它更详细: d=可观

使用RxJava3,给定一个
可观察的
和一个
主题
,我可以将主题订阅到可观察的:

可观察。订阅(主题);//返回void,而不是订阅

后来,我的受试者对可观察对象不再感兴趣,如何从可观察对象中取消订阅?

我认为最简单的选择是使用返回a的,并让每个处理程序对您的
受试者调用适当的方法,如下所示:

d=可观察
.订阅(主题::onNext,主题::onError,主题::onComplete);
//后来
d、 处置();
您还可以创建一个将所有消息转发到
主题
,并使用而不是
订阅
,尽管它更详细:

d=可观察
.subscribowith(新可处置观察员){
@重写公共void onStart(){
}
@重写公共void onNext(整数t){
主题.onNext(t);
}
@覆盖公共无效onError(可丢弃的t){
受试者:onError(t);
}
@重写公共void onComplete(){
subject.onComplete();
}
});
我不知道有任何更干净的选项,RxJava bug追踪器似乎支持这一点,尽管它的目标是RxJava2