0

フラグメントを取得し、フラグメントonResumeonPauseメソッドでバスを登録および登録解除しました。次のBusProvider.getInstance().register(this);とを使用しますBusProvider.getInstance().unregister(this);

次のように定義されたサブスクリプションがあります。

@Subscribe public void onLogin(LoggedInEvent event) {
    // Do Something
}

フラグメントがアタッチされているアクティビティの同じイベントに対して別のサブスクリプションもあり、そのサブスクリプションは反応してそれを実行します。私の質問は、なぜ私のフラグメントが のイベントを受信しないのLoggedInEventですか?

編集: アクティビティonResumeonPauseメソッドでもバスを登録/登録解除しました。

編集2: バスはでインスタンス化されましたThreadEnforcer.ANY

4

1 に答える 1

3

イベントをバスに投稿していたが、メイン/UI スレッドで実行されていなかったクラスが、UI で発生した変更を確認でき、適切に反応するという矛盾を引き起こしていることがわかりました。これで、クラスがメイン スレッドに投稿されThreadEnforcer.ANY、バスの作成から を削除したので、確実にすべてがメイン スレッドで実行されるようになりました。

于 2014-06-17T05:02:47.453 に答える