RxJava BehaviorSubject not emitting last item?

Viewed 1963

I have a simple RxJava, using ReplaySubject, I could get the result, where all 3 numbers are printed.

    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")
    }

When I change to Behavior, I expect the third number i.e. 3 to be printed, as I always thought Behavior is to replay the last emitted item.

    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")
    }

However it doesn't print anything. Why?

Did I miss anything important here? If yes, let me know how to get the supposing emitted last item (i.e. 3) printed.

1 Answers
Related