【问题标题】:Rx Interval between calling PublishSubject.onNext() and receiving it is long调用 PublishSubject.onNext() 和接收它之间的 Rx 间隔很长
【发布时间】:2017-02-16 09:14:00
【问题描述】:

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

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

【问题讨论】:

    标签: android rx-java behaviorsubject


    【解决方案1】:

    我认为这是不可能的。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多