【发布时间】:2021-07-08 21:55:05
【问题描述】:
上下文
我现在遇到一个问题,我正在复制 Retrofit 的 HTTP 请求。
在我的应用程序中,我有一个显示ViewPager 和FragmentStatePageAdapter 的主屏幕。我的应用程序架构 这是一个非常常见的 MVP,我使用 RxJava 和 Retrofit 和 RxJavaAdapterFactory 将 Call 转换为 rx.Observables
看起来像这样:
Page1Fragment 显示多个团队的帖子文章列表。问题是我为获取该文章列表而点击的服务器端端点并没有提供与每篇文章关联的团队,它只是提供与每篇文章关联的团队 ID。
所以我必须在访问服务器端端点以获取文章列表的方法和服务器端端点获取团队列表的方法之间执行Observable.zip,然后我将它们合并。
Page3Fragment 显示所有用户团队的列表(由我之前使用的同一端点提供)
问题
这里的问题是,当我打开应用程序时,3 个片段被实例化,Page1Fragment 和 Page2Fragment 都在访问团队的端点以获取用户的团队列表。
我的问题是;有没有办法实现自定义调度程序,将其附加到改造的方法并避免这种东西?做一些验证,比如“好的,如果 N 个不同的订阅者试图进入这个 Retrofit Observable,则为所有订阅者返回相同的响应”,而不是点击 N 次服务器端 API。我目前正在使用 Scheduler.io() 来传递 .subscribeOn 方法。
如果有什么不清楚的地方,请告诉我。
【问题讨论】: