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