我使用 Otto 总线将事件从活动传递到片段。问题是,片段由 管理ViewPager
并且可以重新创建片段而无需执行其onPause()
和/或onResume()
。不愉快的副作用是,在bus.unregister(fragment)
调用中onPause()
调用时会定期失败并出现 IllegalArgumentException。我还怀疑对我的@Subscribe
注释方法的调用可能会被错过,因为bus.register()
调用在onResume()
方法中也不能被调用。而且,不幸的是,没有bus.isRegistered(fragment)
办法进行安全检查。
有没有更好的方法来注册/注销 ViewPager 托管片段?
我知道这篇文章讨论了类似的设置,但它不包括在 ViewPager 中运行的片段