0

EventBus 3.0.0を使い始めています。

サービスからアクティビティに送信される 3 つのスティッキー イベントがあります。

  1. 行動開始
  2. アクションの進行
  3. アクション終了

私はメインスレッドでイベントを聞いています:

@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void on...Event(... event) {
...
}

サービスはイベントを順番に送信しますstarted-progressN-..-progressM-finished。サブスクライブされたアクティビティは、イベントに従って UI を更新します。

アクティビティがローテーションされた後、送信された順序でスティッキー イベントを取得することを期待しています。それ以外の場合は、UI が壊れます (開始すると進行状況が 0 に設定されるため)。イベントの順序は EventBus によって保証されていますか (これらすべてのイベントに対して同じ EventBus、同じ受信者スレッド、同じサブスクライバーを使用していると仮定します)?

私のテストによると、それは保証されておらず、それは機能/問題ですよね?

回転前:

07-27 11:27:55.254  27910-27910/ app D/App﹕ status Compilation started ...
07-27 11:27:55.254  27910-27910/ app D/App﹕ compile progress 0%
07-27 11:27:55.354  27910-27910/ app D/App﹕ compile progress 20%
07-27 11:27:55.354  27910-27910/ app D/App﹕ compile progress 30%
07-27 11:27:55.354  27910-27910/ app D/App﹕ compile progress 40%
07-27 11:27:55.844  27910-27910/ app D/App﹕ compile progress 50%

ローテーション後 (スティッキー イベントの再送信):

07-27 11:27:59.554  27910-27910/ app D/App﹕ compile progress 50%
07-27 11:27:59.554  27910-27910/ app D/App﹕ status Compilation started ...
4

1 に答える 1