2016-04-07 21 views
7

Zaczynam z RxJava i chciałbym stworzyć zaobserwować, że może uratować ostatni stan ...RxJava Obserwowalne z ostatniego stanu

W RxSwift, że będzie zmienna (https://github.com/ReactiveX/RxSwift/blob/master/Documentation/GettingStarted.md#variables), ale nie mogę znalazł equivalente w RxJava ...

znalazłem pracę wokół, ale jest to dużo kodu płyty kotła

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(); 
} 

odpowiednik RxSwift jest to

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

Czy możesz mi pomóc? Dzięki

Odpowiedz

4

BehaviorSubject ma wartość() metodę, która zwraca jego aktualna wartość

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

Bardzo dziękuję, to było dokładnie to, czego szukałem :) Jeśli pozwolisz mi jeszcze jedno pytanie. Czy istnieje sposób na subskrybcję tego BehaviorSubject, otrzymanie jego ostatniej wartości i dalsze otrzymywanie kolejnych wydarzeń? –

+1

Możesz użyć operatora replay (z pojemnością ustawioną na 1). – JohnWowUs

+0

Dzięki, zadziałało :) –

Powiązane problemy