web-dev-qa-db-ja.com

Rx-onNext()を受け取った後に自動的に購読を解除する方法は?

OnNext()を受信した後に自動的に購読を解除するにはどうすればよいですか?

今のところ私はこのコードを使用します:

rxObservable
.compose(bindToLifecycle()) // unsubscribe automatically in onPause() if method was called in onResume()
.subscribe(new Subscriber<Object>() {
     ...
     @Override
     public void onNext(Object o) {
         unsubscribe();
     }
 });
15

最初のイベントの直後に「登録解除」したいのですが、演算子takeがその方法です。

 rxObservable.compose(bindToLifecycle())
             .take(1)
             .subscribe();
24
dwursteisen

私はこれがあなたが必要なものだと思います:

 rxObservable.compose(bindToLifecycle())
             .takeFirst(lifecycleEvent -> lifecycleEvent == LifecycleEvent.PAUSE);
1
LenaYan