RxJava and random sporadic events on Android


I want to use RxJava like I would used Guava's EventBus or Otto, but I don't see how I can get it to function that way.

This is the scenario: let's say I want to have a button in my Android app and every time a button is pressed I want RxJava to emit an event via my Observable. It seems to me that I have to have the service reregister after it gets an event and that the activity would need to create a new observable as well.

Like if I say


seems to me I would need to that for every event, but that creates a new observable that would need to be registered to again. Surely I am missing something.

You may want to do something like this (from rx.subjects.PublishSubject):

PublishSubject<Object> subject = PublishSubject.create();
// observer1 will receive all onNext and onCompleted events
// observer2 will only receive "three" and onCompleted

If you could inject the Subject interface into the Service and the PublishSubject into the Activity (or vice versa depending on what your doing) you can have a good separation of concerns.