如何创建每次更新成员变量时发出的Observable(onCompleted从不调用)

clu*_*clu 2 android rx-java

我想在管理状态的单例类中创建一个observable(即它存储一个auth令牌).我希望我的android app/activity订阅一个observable,每次更新状态(auth令牌)时都会发出更新.我该怎么做呢?我见过的所有示例都显示了如何创建一个自包含的observable,它可以立即完成或在订阅后完成.

谢谢你的帮助!

aka*_*okd 7

你需要一个BehaviorSubject.

BehaviorSubject<State> rxState = BehaviorSubject.create(initialState);

// update state
rxState.onNext(newState);

// observe current state and all changes after
rxState.subscribe(...);
Run Code Online (Sandbox Code Playgroud)

如果要同时从多个线程设置状态,则需要将其作为第一行.

Subject<State, State> rxState = BehaviorSubject.create(initialState).toSerialized();
Run Code Online (Sandbox Code Playgroud)