TL; DR - onAction2()
не завершается, потому что он ждет, чтобы увидеть, произойдут ли еще какие-либо нажатия кнопок.
В onAction1()
вы инициируете цепочку Observable с помощьюjust
вызов.Оператор just
выдает значение, а затем выдает завершенное событие.
В onAction2()
вы запускаете цепочку Observable с помощью кнопки, которая выдает следующие события при касании, но не выдает завершенное событие, пока кнопка не выходит из области видимости.
В обоих случаяхЗатем вы перенаправляете событие в flatMapLatest
вызов.Одно из свойств, которые имеют Observables flatMap, заключается в том, что они не завершаются до всех Observables, на которые они подписаны для завершения.В этом случае это последняя из наблюдаемых, созданных при запуске, и источник, наблюдаемый.
В обоих случаях наблюдаемая, которую flatMap создает при завершении, но источник не делаетt завершить в случае onAction2 (как описано выше), поэтому flatMap не завершится в этом случае.Он ждет, чтобы увидеть, произойдет ли еще какое-нибудь нажатие кнопки.