Android 单一网络请求改造和RXJava的多重订阅?

Android 单一网络请求改造和RXJava的多重订阅?,android,rx-java,retrofit2,rx-android,Android,Rx Java,Retrofit2,Rx Android,我对RxJava和改型还不熟悉。假设我有改装服务,其返回值可观察为 Observable <User> login(String userName, String password); 可观察登录(字符串用户名、字符串密码); 我怎样才能在多个地方订阅这个可观察的。我想在多个android活动上订阅它 例如:假设我有一个登录页面和登录页面活动。登录页面出现在登录页面之后。当我在登录页面上发出网络请求时,应该在登录页面和登录页面上观察结果 如何实现这一点?您可以进行登录(用户名,p

我对RxJava和改型还不熟悉。假设我有改装服务,其返回值可观察为

Observable <User> login(String userName, String password);
可观察登录(字符串用户名、字符串密码);
我怎样才能在多个地方订阅这个可观察的。我想在多个android活动上订阅它

例如:假设我有一个登录页面和登录页面活动。登录页面出现在登录页面之后。当我在登录页面上发出网络请求时,应该在登录页面和登录页面上观察结果


如何实现这一点?

您可以进行
登录(用户名,pw)。cache()
-
cache()
自动连接到源可观察项,并将所有发出的项重放到其订阅者。它可以很好地用于发射单一结果的可见光,就像改装一样。另一个选项-
replay()
,它返回
ConnectableObservable
,并仅在调用
ConnectableObservable.connect()
时订阅源代码。它有许多有用的重载(
replay(bufferSize)
replay(time,TimeUnit)
,等等),可以控制缓存了多少项。

您可以进行
登录(username,pw)。cache()
-
cache()
自动连接到源可观测项,并将所有发出的项重放到订阅服务器。它可以很好地用于发射单一结果的可见光,就像改装一样。另一个选项-
replay()
,它返回
ConnectableObservable
,并仅在调用
ConnectableObservable.connect()
时订阅源代码。它有许多有用的重载(
replay(bufferSize)
replay(time,TimeUnit)
,等等),可以控制缓存了多少项。

这是正确的响应。然而,我敦促@Sushant将可观察对象重新定义为他心目中的通知模型,因为由于可观察对象固有的局限性,它不能很好地工作(例如,“登录-注销-使用不同凭据登录”用例在他的设计中如何工作?)。相反,我建议使用事件总线。这是正确的回答。然而,我敦促@Sushant将可观察对象重新定义为他心目中的通知模型,因为由于可观察对象固有的局限性,它不能很好地工作(例如,“登录-注销-使用不同凭据登录”用例在他的设计中如何工作?)。相反,我建议使用事件总线。