调用 PublishSubject.onNext() 和接收它之间的 Rx 间隔很长

Rx Interval between calling PublishSubject.onNext() and receiving it is long

在后台线程中我调用 PublishSubject.onNext(); 并在主线程中通过 subscribe(PublishSubject.filter(message -> message.getId() == id), this::onMessageInserted); 接收它。平均持续时间约为 20 毫秒。有什么办法可以缩短这个时间吗?

我们使用 'io.reactivex:rxjava:1.2.5' 'io.reactivex:rxandroid:1.2.1'

我不认为这是可能的。

主要问题是使用主循环程序从后台向主线程传递项目。

它执行所有系统操作,例如布局、绘图、调用生命周期方法,并且在循环器完成所有这些操作后,它运行添加到其队列中的操作。

当你使用一些调度器切换到主线程时,每次它得到一个项目它会添加runnable到looper队列,但是你可以看到runnable不会立即被调用,而是在Loopers的末尾循环。

20ms接近平均绘制时间(主looper工作的频率)