我使用了一个Activity
和许多Fragment
。现在,当我收到IntentService
的回复时,我使用Otto
事件总线将响应的数据推送到Fragment
。
我有一个案例,我希望使用从服务器获取的数据来更新Fragment
的适配器(以及使用适配器的RecyclerView
。)
问题是:用户可以移动到另一个片段,以便如何更新以前的片段状态,因为它现在已从事件总线取消订阅?
答案 0 :(得分:2)
您可以将订阅/取消订阅移至onAttach / onDetach
或
尝试将您的活动包含在事件总线中,然后在处理此事件的活动方法中使用FragmentManager查找要将事件传递到的片段。
FragmentWithEventListener toiletDetailFragment = (FragmentWithEventListener) getSupportFragmentManager()
.findFragmentByTag(FragmentWithEventListener.TAG);
它会在TAG中找到你的片段,即使它在后栈中: 如果没有找到这样的片段,则搜索当前在后栈上的所有片段。