Rx调用PublishSubject.onNext()和接收它之间的时间间隔很长
问题描述:
在后台线程中,我呼叫PublishSubject.onNext();
,并在主线程中通过subscribe(PublishSubject.filter(message -> message.getId() == id), this::onMessageInserted);
我收到它。平均持续时间大约需要20毫秒。有没有办法让这个时间更少?Rx调用PublishSubject.onNext()和接收它之间的时间间隔很长
我们使用 'io.reactivex:rxjava:1.2.5' 'io.reactivex:rxandroid:1.2.1'
答
我不认为这是可能的。
主要问题是要使用主活套将物品从后台运送到主线程。
它执行所有系统操作,例如布局,绘图,调用生命周期方法,并且在活套完成所有动作之后,它运行添加到其队列的动作。
当您使用一些调度程序切换到主线程时,每次它获取一个项目时,它都会将runnable添加到活套队列中,但正如您所看到的,不会立即调用runnable,而是在Loopers循环的末尾。
时间20ms接近平均绘制时间(主要活套工作的频率)。
我明白最新情况。这里没有什么可做的。 –