2016-10-31 5 views
0

У меня есть Observable как:Observable - подписываются два метода

Observable<Integer> dropdownChange =  ReactiveUIObservables.selectionChange(myDropdown) 

я сейчас:

LifecycleObservable.bindFragmentLifecycle(lifecycle(), dropdownChange) 
    .ObserveOn(AndroidSchedulers.mainThread)) 
    .SubscribeOn(AndroidSchedulers.mainThread()) 
    .subscribe(this::onDropdownChange); 

И это работает, теперь после DropdownChange я хочу запустить другой метод на selectionChange. Как это сделать?

ответ

1

вы можете использовать subscribe для вызова нескольких методов. Например.

subscribe(myValue -> { 
     onDropdownChange(myValue); 
     // call the other method 
}); 
0

Если все абоненты должны получать то же событие, вы можете использовать ConnectableObservable. События не будут выходить, пока вы не вызовете .connect().

Observable<Integer> dropdownChange = ReactiveUIObservables.selectionChange(myDropdown); 
ConnectableObservable<Integer> connectableDropdownChange = dropdownChange.publish(); 

connectableDropdownChange.subscribe(this::onDropdownChange); 
connectableDropdownChange.subscribe(this::doSomething); 
connectableDropdownChange.subscribe(this::doSomethingElse); 

// start emitting events 
connectableDropdownChange.connect(); 
Смежные вопросы