如何使用 Retrofit 和 Activity 中的 RxJava/RxAndroid 处理旋转?

How to handle rotation with Retrofit and RxJava/RxAndroid in Activity?

我读到 here 我们可以使用一些全局缓存来处理旋转。

You can prevent this by using the cache or replay Observable operators, while making sure the Observable somehow survives the Activity life-cycle (for instance, by storing it in a global cache, in a Fragment, etc.)

但是如何实现呢?有人可以给我举一些例子怎么做吗? 或者,也许您知道一些更好的方法来处理配置更改?

编辑:

目前我已经找到了很多方法,但我最终还是使用了 RxBus 实现。你可以找到 here.

使用 RxBus 的好例子

我制作了一个演示应用程序 (https://github.com/pmellaaho/RxApp) 以试验如何处理 Android 应用程序中的各种情况。简而言之,我使用来自 Activity 的单例模型来获取网络响应。这使得缓存响应、从多个 UI 组件访问数据、订阅未决请求以及为自动化 UI 测试提供模拟数据成为可能。

我最近使用 Loader 结合 ConnectableObservable 来处理 RxJava2 流期间更好的旋转。我什至创建了一个 Medium Post 来详细解释我的方法。

基本上,您必须将可观察对象 (ConnectableObservable) 放入 LoaderTransformer,下次销毁activity/fragment恢复时重新订阅。