2013-10-09 5 views
7

Я хочу использовать RxJava, как я бы использовал EventBus Guava или Otto, но я не вижу, как я могу заставить его функционировать таким образом.RxJava и случайные спорадические события на Android

Это сценарий: допустим, у меня есть кнопка в приложении для Android, и каждый раз, когда нажимается кнопка, я хочу, чтобы RxJava излучал событие через мой Observable. Мне кажется, что я должен получить услугу reregister после того, как она получит событие, и что для этой деятельности потребуется создать и новую наблюдаемую.

Как, если я скажу

Observable.from(x) 

мне кажется, я должен был бы, что для каждого события, но создает новый наблюдаемым, что нужно будет регистрироваться снова. Конечно, я чего-то не хватает.

ответ

6

Вы можете сделать что-то вроде этого (от rx.subjects.PublishSubject):

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

Если вы могли бы внедрить интерфейс Subject в Службу и PublishSubject в операцию (или наоборот в зависимости от что вы делаете), вы можете иметь хорошее разделение проблем.

+0

Это было в значительной степени, но я думаю, что BehaviorSubject мне больше нравится. – arinte

Смежные вопросы