有一些方法可以发出BehaviorSubject的旧项

时间:2018-01-04 18:48:03

标签: java android rx-java2

我有一个像这样的BehaviorSubject:

private BehaviorSubject<List<Activity>> draft = BehaviorSubject.createDefault(new ArrayList<>());

此Subject表示recyclerView中的项目,因此当我调用onNext方法时,某些项目会添加到recyclerView。

当视图再次附加到屏幕时出现问题,显然只有最后一个项目在recyclerView上可见。

所以问题是有没有办法累积第一次订阅时发出的所有项目?

此致

2 个答案:

答案 0 :(得分:0)

您将无法取回之前发出的物品。你必须存储一些变量/商店,它们在视图附加和分离时不会改变。如果你想获得以前存储的项目,那么这个组件在你的情况下不是理想的组件。

答案 1 :(得分:0)

您正在描述ReplaySubjectReplaySubject将为任何新订阅者发出所有先前发出的值。

检查大理石图here