如何创建每次更新成员变量时发出的 Observable(从不调用 onCompleted) [英] How to create Observable that emits every time a member variable is updated (onCompleted never called)

查看:27
本文介绍了如何创建每次更新成员变量时发出的 Observable(从不调用 onCompleted)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在管理状态的单例类中创建一个 observable(即它存储一个身份验证令牌).我希望我的 android 应用程序/活动订阅一个 observable,每次更新状态(身份验证令牌)时都会发出更新.我该怎么做呢?我见过的所有示例都展示了如何创建一个自包含的 observable,该 observable 立即完成或订阅后完成.

I'd like to create an observable in a singleton class that manages state (i.e. it stores an auth token). I'd like my android app/activity to subscribe to an observable that will emit an update every time the state (auth token) is updated. How do I do this? All examples I've seen show how you can create a self contained observable that completes immediately or after subscription.

感谢您的帮助!

推荐答案

您需要一个 BehaviorSubject.

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

// update state
rxState.onNext(newState);

// observe current state and all changes after
rxState.subscribe(...);

如果你想从多个线程并发设置状态,你需要把它作为第一行.

If you want to set the state from multiple threads concurrently, you need this as the first line.

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

这篇关于如何创建每次更新成员变量时发出的 Observable(从不调用 onCompleted)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆