我是RxJava和Retrofit的新手。假设我有将Observable作为
返回的Retrofit服务Observable <User> login(String userName, String password);
如何在多个地方订阅此Observable。我想在多个Android活动上订阅它。
例如:假设我有登陆页面和登录页面活动。登录页面后会显示登录页面。当我在登录页面上发出网络请求时,应在登录页面和登陆页面上观察到结果。
我怎样才能实现这个目标?
答案 0 :(得分:4)
您可以执行login(username,pw).cache()
- cache()
自动连接以获取可观察信息,并将所有已发放的项目重播给其订阅者。它适用于发射单一结果的可观测量,如改造那样。另一个选项 - replay()
,仅返回ConnectableObservable
,并仅在调用ConnectableObservable.connect()
时订阅源。它有许多有用的重载(replay(bufferSize)
,replay(time, TimeUnit)
等),允许用户控制缓存的项目数。