书到用时方恨少,事非经过不知难。这篇文章主要讲述如何在Activity中使用Retrofit和RxJava / RxAndroid处理旋转?相关的知识,希望能为你提供帮助。
我读了here,我们可以使用一些全局缓存来处理旋转。
您可以通过使用缓存或重放Observable运算符来防止这种情况,同时确保Observable以某种方式在Activity生命周期中存活(例如,通过将其存储在全局缓存中,在片段中等)但是如何实现呢?有人可以指点我怎么做的一些例子?或者您可能知道一些更好的方法来处理配置更改?
编辑:
目前我已经找到了很多方法,但最终我使用了RxBus实现。使用RxBus的好例子你可以找到here。
答案我已经制作了一个演示应用程序(https://github.com/pmellaaho/RxApp),以试验如何解决android应用程序中的各种情况。简而言之,我使用Activity中的单例模型来获取网络响应。这使得缓存响应,从多个UI组件访问数据,订阅待处理请求以及为自动UI测试提供模拟数据成为可能。
另一答案我最近使用Loader结合ConnectableObservable来处理Rxjava2流中更好的旋转。我甚至创建了一个Medium Post详细解释我的方法。
【如何在Activity中使用Retrofit和RxJava / RxAndroid处理旋转()】基本上,您必须将observable(ConnectableObservable)放在带有Transformer的Loader中,然后在活动/片段被销毁后恢复时重新订阅它。
推荐阅读
- 使用Android到Objective - C的多部分表单数据(NSDictionary和图像)
- Android(如何在手机旋转后阻止创建新线程)
- Android(ImageView旋转动画 - 保持比例类型适合中心)
- Android(围绕Y的第二次180度旋转镜像会反映图像)
- 试图在android中旋转布局,画布似乎不会旋转
- Android两指旋转
- 如何在Android中旋转位图,使图像中心平滑,无振荡运动
- Android Camera2预览偶尔会旋转90度
- Android以XML格式访问SDK属性