2017-05-09 7 views

答えて

5

はい。 ReplayingShareというサードパーティ製のライブラリにあります。 https://github.com/JakeWharton/RxReplayingShare

.replay(1).autoConnect()と比較しています。下流にサブスクライバが存在しない場合は、アップストリームから切断できます。

.replay(1).refcount()と比較して、すでに切断している場合でも最後の値をキャッシュすることができます。

また、アップストリームが終了した場合(refcount/autoConnectを使用している場合)、次のサブスクライバの再生はできません。しかし、ReplayingShareでは、常に最後のアイテムキャッシュが取得されます。

0

はい、あなたはdocsから、1のPARAMとreplay(bufferSize)演算子を使用することができます。

を最もbufferSizeの項目でリプレイがその観察可能

によって放出されることを観察可能なソースへの単一のサブスクリプションを共有することConnectableObservableを返します。

リプレイは最後の項目をキャッシュして、任意の新しい加入者にそれを再生します、それはあなたがそれがアイテムを発する開始するためにconnect()を呼び出し、またはを取得するためにrefCount()を使用しなければならないConnectableObservableだということに注意してくださいは最初にSubscriberで自動的に実行され、最後のサブスクリプションがサブスクライブされていないときにはサブスクライブされません。

関連する問題