3

Ottoバスを使用して、アクティビティからフラグメントにイベントを伝達します。問題は、フラグメントがによって管理され、ViewPagerフラグメントを実行せずにフラグメントを再作成できることonPause()ですonResume()。その不快な副作用は、呼び出しbus.unregister(fragment)で呼び出されたときonPause()にIllegalArgumentExceptionで定期的に失敗することです。また、呼び出しは呼び出しできないメソッド内にあるため、@Subscribe注釈付きメソッドの呼び出しを見逃す可能性があると思います。そして、残念ながら、安全なチェックを行う方法はありません。bus.register()onResume()bus.isRegistered(fragment)

ViewPagerマネージドフラグメントを登録/登録解除するためのより良い方法はありますか?

同様の設定について説明しているこの投稿を知っていますが、ViewPagerで実行されているフラグメントは含まれていません

4

1 に答える 1

1

同様の問題があるためにここに来た場合-(それを指摘してくれたNick Campionに感謝します)onPause\onResume私の断片には何も問題はありません。私は単にregister/untegister2回呼び出しました。1回は親の抽象クラスで、もう1回は子で呼び出しました。のようにclass MyFragment extends AbsFragment。だからおそらくあなたのコードを見てください

于 2013-02-07T23:01:31.583 に答える