gpt4 book ai didi

android - 注销 fragment 时 OTTO 中的 IllegalArgumentException

转载 作者:太空狗 更新时间:2023-10-29 14:23:17 24 4
gpt4 key购买 nike

我使用 Otto 总线将事件从 Activity 传递到 Fragments。问题是, fragment 由 ViewPager 管理,无需执行其 onPause() 和/或 onResume() 即可重新创建 fragment >。令人不快的副作用是,当在 onPause() 中调用 bus.unregister(fragment) 时,调用会定期失败并出现 IllegalArgumentException。我还怀疑对我的 @Subscribe 注释方法的调用可能会被遗漏,因为 bus.register() 调用是在 onResume() 方法中,它也可以不调用。而且,不幸的是,没有 bus.isRegistered(fragment) 方法来进行安全检查。

是否有更好的方法来注册/取消注册 ViewPager 托管 fragment ?

我知道 this post讨论了类似的设置,但不包括在 ViewPager 中运行的 fragment

最佳答案

如果您是因为遇到类似问题而来到这里 - 事实证明(感谢 Nick Campion 指出)我的 fragment 中的 onPause\onResume 没有任何问题。我只是让 register/untegister 调用了两次:一次在父抽象类中,另一次在子抽象类中。正如在 class MyFragment extends AbsFragment 中一样。所以也许看看你的代码

关于android - 注销 fragment 时 OTTO 中的 IllegalArgumentException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14740895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com