我正在使用 RxJava 在 Android 中构建反应式 UI。假设我有一个ListView
或RecyclerView
显示用户列表。我希望能够为我的适配器提供整个项目列表,每个项目都处于它们的最新状态,只要它们中的任何一个被更新。
这是我目前对该想法的实现:
- 为每个用户创建一个
Observable
,它是一些热点的下游Observable
。所以只要有变化,它就会被热点触发,Observable
进而发出最新的用户数据。 - 用于
Observable.combineLatest
创建一个合并点,我将在其中将用户组合成一个列表 - 将列表发送到 UI
我能够让它工作,但有时当列表包含大量用户(即 1000 个用户)时,或者当我因为删除/插入(因此需要combineLatest
再次调用)而需要动态更新列表时,我观察到之间存在明显的滞后发生更新并最终发出列表。
所以我的问题是,实现这种自我更新项目列表并作为一个整体发出的最佳和最有效的方法是什么?还是我根本不应该以列表的形式发出?