2017-02-16 14 views
1

バックグラウンドスレッドでは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'

答えて

3

を使用しています。

主な問題は、バックグラウンドからメインスレッドにアイテムを配信するためにメインルーパーが使用されていることです。

レイアウト、描画、呼び出しライフサイクルメソッドなどのすべてのシステムアクションを実行し、ルーパーがすべてのアクションを完了した後、そのキューに追加されたアクションを実行します。

いくつかのスケジューラを使ってメインスレッドに切り替えると、アイテムを取得するたびに、ループキューにrunnableが追加されますが、その実行可能ファイルはすぐには呼び出されませんが、Loopersループの最後に表示されます。

時間20msは、平均描画時間(主ルーパが動作する頻度)に近いです。

+0

私は何が問題を見るか分かります。ここで何もする必要はありません。 –

関連する問題