2013-10-09 12 views
7

Voglio usare RxJava come se usassi EventBus o Otto di Guava, ma non vedo come posso farlo funzionare in questo modo.RxJava e eventi sporadici casuali su Android

Questo è lo scenario: diciamo che voglio avere un pulsante nella mia app per Android e ogni volta che viene premuto un pulsante, voglio che RxJava emetta un evento tramite il mio Observable. Mi sembra di dover avere il servizio reregister dopo aver ricevuto un evento e che l'attività avrebbe dovuto creare anche un nuovo osservabile.

Come se dico

Observable.from(x) 

mi sembra che avrei bisogno di che per ogni evento, ma che crea una nuova osservabile che avrebbe bisogno di essere registrati per nuovo. Sicuramente mi manca qualcosa.

risposta

6

Si consiglia di fare qualcosa di simile (da 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(); 

Se si potesse iniettare l'interfaccia soggetto nel Servizio e il PublishSubject nell'attività (o viceversa a seconda cosa stai facendo) puoi avere una buona separazione delle preoccupazioni.

+0

Questo era praticamente tutto, ma penso che BehaviorSubject sia più di mio gradimento. – arinte

Problemi correlati