Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否发出'onCompleted()'的性能含义_Java_Rx Java_Rx Android - Fatal编程技术网

Java 是否发出'onCompleted()'的性能含义

Java 是否发出'onCompleted()'的性能含义,java,rx-java,rx-android,Java,Rx Java,Rx Android,我有类似的东西 Button button = new Button(parent, SWT.PUSH); PublishSubject<Event> subject = PublishSubject.create(); button.addListener(SWT.Selection, e -> subject.onNext(e)); subject.subscribe(e -> System.out.println("selection=" + e)); 据我所知,

我有类似的东西

Button button = new Button(parent, SWT.PUSH);
PublishSubject<Event> subject = PublishSubject.create();
button.addListener(SWT.Selection, e -> subject.onNext(e));
subject.subscribe(e -> System.out.println("selection=" + e));

据我所知,这只是增加了另一个需要GC’ed的匿名类,这似乎是一个糟糕的交易。我想的对吗?发出我所缺少的
onCompleted()
有什么好处吗?

在这种情况下,调用
onCompleted
没有任何好处。如果你的被观察者使用了一些资源,一旦你完成了被观察者的使用,你就需要处理这些资源,那么我会说你应该通过一个终止事件或者取消订阅


如果您想在这些情况下保持安全,通常我会从您订阅的
订阅者
实例中取消订阅(创建一个实例并保留对它的引用,以便您可以调用
订阅者。unsubscribe()
)。

感谢您的输入Dave:)
button.addListener(SWT.Dispose, e -> subject.onCompleted());