在活动onBackPressed()
上定义事件类和事件后,我无法在片段上获取事件,我的一些活动在这个片段之上打开,它是MainActivity的子节点。我想从其他开场活动中发布一些事件,但是我的代码在Fragment上没有得到这个事件,但是我可以从活动onBackPressed()
发布事件
SignalActivityMarketDetailStateEvents类:
public class SignalActivityMarketDetailStateEvents {
private boolean activityMarketDetailState;
public SignalActivityMarketDetailStateEvents(boolean activityMarketDetailState) {
this.activityMarketDetailState = activityMarketDetailState;
}
public boolean isActivityMarketDetailState() {
return activityMarketDetailState;
}
}
ActivitySecond:
@Override
public void onBackPressed() {
EventBus.getDefault().post(new SignalActivityMarketDetailStateEvents(true));
}
获取活动的片段:
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(SignalActivityMarketDetailStateEvents event) {
Log.e("EventBus ","Received");
}
@Override
public void onStart() {
EventBus.getDefault().register(this);
super.onStart();
}
@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}
@Override
public void onResume() {
EventBus.getDefault().register(this);
super.onResume();
}
在我的片段中,这一行在发布事件后不起作用:
Log.e("EventBus ","Received");
答案 0 :(得分:1)
您并未注意到这些活动的生命周期。您可以使用粘性事件(postSticky
)。或者在某些单例中更新状态并在onResume
中读取该状态。