Subscriber
추상 클래스는 실제로 add
메서드가있어서 Subscription
을 구독자와 함께 구독 취소 할 수 있습니다. 당신의 Observable
에 가입 된 Observer
로 aSubscriber
의
def myObservable = Observable.create({ aSubscriber ->
val listener = {event ->
aSubscriber.onNext(event);
}
existingEventSource.addListener(listener)
// Adds a lambda to be executed when the Subscriber un-subscribes from your Observable
aSubscriber.add(Subscriptions.create(() -> existingEventSource.removeListener(listener)));
})
생각해; 우리는 그것을 Subscriber
이라고 부를 것입니다. Subscriber
이 여전히 Observable
에 가입되어있는 한 Observable
은 값을 방출 할 수 있습니다. 하지만 Subscriber
구독을 취소하면 중지되어야합니다. 그러나 우리가 Subscriber
구독을 취소 한 경우 알림을 받고 싶다면 Action
을 등록하여 등록 할 수 있습니다. 이것이 add
방법이 사용 된 것입니다. @ dwursteisen이 언급 한 바와 같이, 구독자가 구독을 취소 할 때 기본적으로 실행되는 람다를 등록하는 것입니다.
다른 구독자에서 구독을 구독 취소 할 수도 있습니다. 이를 달성하는 방법에 대한 예제는 rxanroid
프로젝트의 MainThreadSubscription
을 참조하십시오.
가 여기에 메인 쓰레드
aSubscriber.add(new MainThreadSubscription() {
@Override
protected void onUnsubscribe() {
existingEventSource.removeListener(listener);
}
});
미겔에 구독 취소를 위해 그것을 사용하는 거라고하는 방법의 예, 덕분에 당신의 대답을,하지만 난 그것을 얻을 수 없습니다. 좀 더 자세히 설명해 주시겠습니까? 아니면 내가 읽을 수있는 관련 문서 나 소스 코드를 가르쳐 주시겠습니까? – xwk
add 메서드를 사용하면 Observable이 구독을 취소 할 때 실행되는 람다를 등록합니다. – dwursteisen
@xwk, 나는 당신에게 더 나은 아이디어를 줄 수있는 약간의 설명을 추가했다. –