Субъекты имеет много «реальный мир» приложения, особенно, когда вы постепенно превратить ваш кодовый от императива реактивной стиле. Он может служить мостом между этими двумя мирами, где вы можете влиять на поток с нереактивным кодом, выходящим за пределы потока.
Но как вы попросили пример. В последнее время я выполнял пользовательское поведение, когда пользователь пытается вернуться из действия. RxJava предоставил мне очень элегантное решение проблемы, с которой я столкнулся, поэтому мне нужно было создать поток событий, который соответствовал бы пользователю, желающему вернуться. Я сознательно избегал фразы «нажмите кнопку« Назад », потому что в кодовой базе есть несколько мест, где я смогу имитировать ситуацию возврата, и она всегда проходит через метод onBackPressed()
.
Чтобы превратить это в один поток, потребуется массивный рефакторинг, который сейчас не находится в бюджете. Но я не хотел отказываться от решения через RxJava, поскольку это могло сделать код намного более кратким. Использование BehaviorSubject дало ответ, поскольку мне просто нужно было испустить событие в методе onBackPressed()
.