我发现一些文章谈论RxJava/RxAndroid如何取代事件总线(如otto)
https://lorentzos.com/rxjava-as-event-bus-the-right-way-10a36bdd49ba#.7a4619qva
https://medium.com/mobiwise-blog/use-rxjava-instead-of-event-bus-libraries-aa78b5023097#.ew28h2urf
第一篇文章的引用:
来自Square的Otto在前几天被正式弃用.在Android世界中,我们现在可以为"EventBusses死了很长的RxJava"而欢呼.
但我有一件事是:
事件总线的一个好处是它们对Activity生命周期有很大的帮助,因为你不需要手动管理注册/取消注册回调(从而避免内存泄漏)
示例流程:
活动订阅获取歌曲的事件(比如SongsAvailableEvent)
我们要求歌曲(我们提出网络请求)
我们在请求中更改设备的方向
Activity死了,构建了一个新的,也订阅了SongsAvailableEvent
新活动获取事件并更新UI,旧活动(现在已经死了)没有得到事件(耶!)
上面的文章看起来这个流程是由RxAndroid/RxJava"解决"的,但是使用Rx时,你仍然需要在更改设备的方向时手动订阅/取消订阅Observable.此外,如果我想"重用"Observable中的请求,我需要以某种方式持久化它,以便我将在新Activity中订阅相同的Observable(我不太清楚如何做到这一点,但它是不是重点:)).
我的问题是:这个问题是否可以用纯RxAndroid/RxJava轻松解决,或者我是否仍然需要使用事件总线/扩展Rx使用RxLifecycle之类的东西(由于我不在表示层管理我的Observables使事情变得复杂) ?