Java 有一些方法可以发出BehaviorSubject的旧项
我有一个行为主体,像这样:Java 有一些方法可以发出BehaviorSubject的旧项,java,android,rx-java2,Java,Android,Rx Java2,我有一个行为主体,像这样: private BehaviorSubject<List<Activity>> draft = BehaviorSubject.createDefault(new ArrayList<>()); private BehaviorSubject draft=BehaviorSubject.createDefault(new ArrayList()); 这个主题表示recyclerView中的项目,因此当我调用onNext方法时,一
private BehaviorSubject<List<Activity>> draft = BehaviorSubject.createDefault(new ArrayList<>());
private BehaviorSubject draft=BehaviorSubject.createDefault(new ArrayList());
这个主题表示recyclerView中的项目,因此当我调用onNext方法时,一些项目被添加到recyclerView中
当视图再次连接到屏幕时,问题就出现了。显然,只有最后发出的项目在recyclerView上可见
所以问题是有什么方法可以累积第一次订阅时发出的所有项目
关于您将无法取回以前发出的物品。您必须将其存储在视图附着和分离时不会更改的变量/存储中。如果要获取以前存储的项目,则此组件不是您案例中使用的理想组件。您正是在描述一个
ReplaySubject
。ReplaySubject
将为任何新订户发出所有以前发出的值
查看大理石图。实际上我现在正在做这件事,我只是觉得应该有更好的方法。还有其他类型的
主题。符合您的要求。您好,这是一个可行的解决方案,但这是一个奇怪的更新n倍于recyclerView。这是因为您正在使用每个项目更新recyclerView,因此最好将您的排放设置为列表,而不是在流中使用toList()