清除replaySubject缓冲区rxjava

清除replaySubject缓冲区rxjava,java,android,rx-java,Java,Android,Rx Java,似乎应该有一个ReplaySubject.clear()方法。目前,每当我想清除主题时,我都会给我的字段分配一个新的ReplaySubject.create(),但这似乎有些过分。有人知道我没有看到一个明确的方法吗?看看它不受支持,因为它需要更严格的协议(即,确保没有活动消费者中断事件流)。有一种方法可以通过有时间限制的重放来实现一些效果,其中调度程序是TestScheduler。每当您想“清除”主题时,您都会将虚拟时间移到replay max age之前,新消费者将看不到旧数据。但是请注意,目

似乎应该有一个ReplaySubject.clear()方法。目前,每当我想清除主题时,我都会给我的字段分配一个新的ReplaySubject.create(),但这似乎有些过分。有人知道我没有看到一个明确的方法吗?

看看它不受支持,因为它需要更严格的协议(即,确保没有活动消费者中断事件流)。有一种方法可以通过有时间限制的重放来实现一些效果,其中调度程序是TestScheduler。每当您想“清除”主题时,您都会将虚拟时间移到replay max age之前,新消费者将看不到旧数据。但是请注意,目前,在新的onXXX方法调用发生之前,这不会释放内部数据。感谢@akarnokd的响应。每当我想清除主题并重新开始时,简单地设置mySubject=ReplaySubject.create()是否会被认为是不好的做法?请记住,我只有一个订户在那个时候被取消订阅。我的用例是将音频块流式传输到服务器,由于我需要在建立连接之前开始录制音频块,这使得这一过程变得复杂。制作完成后,我重播主题的所有内容,并继续通过连接连续推送块,直到用户取消。在这种情况下,您可以控制创建和消费,这样解决问题是合理的。