目前,我正在开发一个项目,该项目使用RxJava和RxBinding一起观察视图'变化。它可以很好地处理我们可以轻松访问生命周期事件的片段和活动 - 因为它建议我们绑定onResume
上的数据流并解除onPause
上的绑定。
最近我们介绍了RecyclerView,它显示了视图列表,所有这些视图都可以是我们想要订阅的数据流。我遇到的问题是在创建时将CompositeSubscription对象从活动/片段通过适配器传递给视图持有者。当然,它并不能很好地运行当用户离开屏幕并返回时(onPause
和onResume
被调用),ViewHolders不会被重新创建。
解决方案是使适配器,布局管理器(访问现有视图持有者)生命周期识别,但它需要我们编写额外的代码来传递逻辑层之间的订阅参考。
然而,我的一位同事建议使用事件总线,它将用于将事件中的Subscription传递给activity / fragment,然后将它们添加到CompositeSubscription中,并且所有这些都将被取消订阅。此外,我们可以通知视图持有者在用户返回时将其自身归属。
您如何看待这种方法?在这种方法中我是否应该注意哪些陷阱?
答案 0 :(得分:2)
Observable
。请记住:您不应该将RxJava应用于每个问题。