实战RxJava之combineLatest & distinctUntilChanged

最近项目中碰到了这样一个需求: 在每当Tab切换到特定页面,并满足onResume状态 构建得到的查询条件和上一次成功查询条件不一致 时,查询并获取特定的信息。 通常的做法是: 添加切换Tab和onResume的Listener,在onResume的Listener中保存onResume状态。在切换Tab的Listener触发时检查onResume状态,满足则进入下一步 构建相应的查询条件,将查询条件和上一次成功的条件进行比较,如果不一致则查询并进入下一步 查询成功时记录上一次成功查询条件,失败时重置上一次成功查询条件为空 看上去可以Work,实际上大多数运行状况中也是可以的,但这里有个隐藏的前提条件: Tab切换到特定页面的事件后,onResume状态已经被设置好了 如果不满足这个条件,那么查询永远不会执行。 实际上,我们希望无论Tab切换到特定页面和满足onResume状态的先后顺序,只要在条件满足时就进行下一步。

read more »