我在这里读到我们可以使用一些全局缓存来处理旋转。
你可以通过使用缓存或重放可观察对象操作符来防止这种情况,同时确保可观察对象以某种方式在Activity生命周期中存活下来(例如,通过将其存储在全局缓存中,在Fragment中等)
但是如何实现呢?谁能给我举个例子怎么做?或者您可能知道处理配置更改的更好方法?
编辑:现在我已经找到了很多方法,但我最终使用RxBus实现。您可以在这里找到使用RxBus的好例子。
我制作了一个演示应用程序(https://github.com/pmellaaho/RxApp),以实验如何处理Android应用程序中的各种情况。简而言之,我使用来自Activity的单例模型来获取来自网络的响应。这使得缓存响应、访问来自多个UI组件的数据、订阅挂起的请求以及为自动化UI测试提供模拟数据成为可能。
我最近使用Loader结合ConnectableObservable来处理RxJava2流中更好的旋转。我甚至创建了一个Medium Post来详细解释我的方法。
基本上,你必须把可观察对象(ConnectableObservable)放在Loader和Transformer中,然后在activity/fragment被销毁后恢复时重新订阅它。