私はReplaySubjectを使って簡単なRxJavaを持っていますが、3つの数字がすべて印刷された結果を得ることができました。RxJava BehaviorSubjectが最後のアイテムを放出していませんか?
val observable : Observable<Int> = Observable.just(1, 2, 3)
val subject = ReplaySubject.create<Int>()
observable.subscribe(subject)
subject.subscribe{
result ->
System.out.println("Start $result in Subscription Result")
}
Iは動作に変更すると、私はいつも動作が最後に放出されたアイテムを再生することである考えとして、私は、第3の数即ち3が印刷されることを期待します。
val observable : Observable<Int> = Observable.just(1, 2, 3)
val subject = BehaviorSubject.create<Int>()
observable.subscribe(subject)
subject.subscribe{
result ->
System.out.println("Start $result in Subscription Result")
}
ただし、何も印刷されません。どうして?
ここで重要なことは忘れましたか?はいの場合は、最後に放出されたアイテム(つまり3)を印刷する方法を教えてください。
'BehaviorSubject'は設計完了後に最後の項目を保持しません。 'ReplaySubject.createWithSize(1)'を使って、上流が完了していなくてもaltestを常に再生させるべきです。 – akarnokd
ありがとう@akarnokd。どのようにして、最後のアイテムを放出したいのですが、すべてではありませんか? – Elye