RxAndroid消息队列超时

时间:2016-11-23 17:21:48

标签: android timeout queue rx-java rx-android

我有来自网络套接字的消息。 它们包括对某些对象的状态更改 我们将这些状态命名为A,B,C

消息: 一个 一个 乙 C C 甲

我只对最后一个州(A)感兴趣,并且仅在一段时间后感兴趣 对与此类消息相关的ws没有任何活动。所以,以某种方式 将它们排队,并在一些不活动(1000ms)后对其进行操作 最后一条(A)消息(最后一条消息之前的任何消息都不感兴趣)。 我如何使用RxAndroid实现它? (我已经连接了Retrolambda和所有与Rx有关的,也有 有几种方法可以处理一些异步的东西)

2 个答案:

答案 0 :(得分:1)

我认为在您的情况下,最好使用.sample()代替.debounce()

Observable<Message> debouncedStream = messageObservable
    .samlpe(1 , TimeUnit.Seconds);

查看差异sampledebounce

答案 1 :(得分:0)

您可以根据消息类型过滤消息,然后去抖动:

 Observable<Message> debouncedStream = messageObservable
.filter(message -> message.getType().equals("A"))
.debounce(1 , TimeUnit.Seconds);