2016-04-07 18 views
7

sto iniziando con RxJava, e vorrei creare un osservabile che può salvare l'ultimo stato ...RxJava osservabile con ultimo stato

In RxSwift, che sarebbe variabile (https://github.com/ReactiveX/RxSwift/blob/master/Documentation/GettingStarted.md#variables), ma non ci riesco trovato un equivalente in RxJava ...

ho trovato un lavoro in giro, ma è un sacco di codice refusi

private boolean isGettingCompanies = false; 

public boolean isGettingCompanies() { 
    return isGettingCompanies; 
} 

private void setIsGettingCompanies(boolean isGettingCompanies) { 
    this.isGettingCompanies = isGettingCompanies; 
    isGettingCompaniesPublishSubject.onNext(isGettingCompanies); 
} 

private final PublishSubject<Boolean> isGettingCompaniesPublishSubject = PublishSubject.create(); 

public Observable<Boolean> isGettingCompaniesPublishSubject() { 
    return isGettingCompaniesPublishSubject.asObservable(); 
} 

l'equivalente RxSwift è questo

private(set) var isGettingCompanies: Variable = Variable(false) 

Potete aiutarmi per favore? Grazie

risposta

4

BehaviorSubject ha un metodo value(), che restituisce il suo valore corrente

final BehaviorSubject<Boolean> subject = BehaviorSubject.<Boolean>create(false); 
final Boolean value = subject.getValue(); 
+0

Grazie mille, che era esattamente quello che stavo cercando :) Se mi permettete una domanda. C'è un modo per iscriversi a questo BehaviorSubject, ricevere il suo ultimo valore e continuare a ricevere i prossimi eventi? –

+1

È possibile utilizzare l'operatore di riproduzione (con capacità impostata su 1). – JohnWowUs

+0

Grazie, ha funzionato :) –

Problemi correlati