Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sebaslogen/c9238d37fc1cb4673d5ba86dce8ece28 to your computer and use it in GitHub Desktop.
Save sebaslogen/c9238d37fc1cb4673d5ba86dce8ece28 to your computer and use it in GitHub Desktop.
BehaviorRelay shared with single onSubscribe and onUnSubscribe
BehaviorRelay<Integer> behaviorRelay = BehaviorRelay.create();
Observable<Integer> relayObservable = behaviorRelay
.doOnSubscribe(() -> {
Log.i("RxExperiments", "share->doOnSubscribe");
}).doOnUnsubscribe(() -> {
Log.i("RxExperiments", "share->doOnUnsubscribe");
})
.share();
Log.i("RxExperiments", "share->observer-1 subscribes");
Subscription subscription1 = relayObservable.subscribe(i -> {
Log.i("RxExperiments", "share->observer-1->onNext with " + i);
});
behaviorRelay.call(1);
Log.i("RxExperiments", "share->observer-2 subscribes");
Subscription subscription2 = relayObservable.subscribe(i -> {
Log.i("RxExperiments", "share->observer-2->onNext with " + i);
});
behaviorRelay.call(2);
Log.i("RxExperiments", "share->observer-1 unsubscribes");
subscription1.unsubscribe();
Log.i("RxExperiments", "share->observer-2 unsubscribes");
subscription2.unsubscribe();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment