EventBus OnEvent()未被调用

时间:2016-02-16 09:42:40

标签: android android-fragments event-bus greenrobot-eventbus

我喜欢使用事件总线将数据从一个片段传递到另一个片段

从片段1开始,我正在执行以下操作

@Override
public void onPause() {
    bsValues = new BoreShaftValues(strtext, strtextshaft);
    bus.post(bsValues);
    super.onPause();
}

在Fragment-2中,我在OnActivitycreated

中注册了公交车
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    bus.register(this);
}

然后我将OnEvent()方法置于片段-2

public void onEvent(BoreShaftValues event){
    boregradeselect.setText(event.getBoreData());
    shaftgradeselect.setText(event.getShaftData());
}

以下是我的BoreshaftVales课程

public class BoreShaftValues {
    private String boredata;
    private String shaftdata;

    public BoreShaftValues(String boredata, String shaftdata){          
        this.boredata = boredata;
        this.shaftdata = shaftdata;
    }

    public String getBoreData(){
        return boredata;
    }
    public String getShaftData(){
        return shaftdata;
    }
}

但是这个OnEvent()方法根本没有被调用。我是在做正确的吗?

1 个答案:

答案 0 :(得分:1)

我通常尝试将EventBus绑定到Activity,然后使其松散耦合。因此,在Fragment生命周期中,我在onAttach中注册了EventBus,并在片段中的onDetach方法中取消注册它。