【发布时间】:2016-06-21 14:35:10
【问题描述】:
问题:我正在使用EventBus by greenrobot 传递一些事件。
不幸的是,对于在两个fragments 之间传递数据的情况,它对我有用。所以事件不会被触发。
问题:我误解了这个概念吗?还是我的代码有错误?
注意:两个片段在发送事件时都存在。一个fragment 是父级,另一个是子级以显示详细信息。
细节片段:
public class DetailFragment extends Fragment {
(...)
refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EventBus.getDefault().post(new IntentRefresh());
}
});
(...)
}
EventBus 类:
public class IntentRefresh {
public IntentRefresh (){}
public void refreshParent() {
}
}
父片段:
public class ParentFragment extends Fragment {
(...)
@Override
public void onPause() {
super.onPause();
EventBus.getDefault().unregister(this);
}
@Override
public void onResume() {
super.onResume();
EventBus.getDefault().register(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void updateList(IntentRefresh intentRefresh) {
Toast.makeText(getActivity(), "LUEEEEPT", Toast.LENGTH_SHORT).show();
}
(...)
}
【问题讨论】:
-
两个片段是否同时恢复?确保父片段没有暂停,这将取消它从总线上的订阅。
标签: android android-fragments callback event-bus