Otto:片段订阅未接收事件

时间:2014-06-17 00:08:35

标签: android otto

我有一个片段,并在片段onResumeonPause方法中注册和取消注册了总线。使用以下BusProvider.getInstance().register(this);BusProvider.getInstance().unregister(this);

我的订阅定义如下:

@Subscribe public void onLogin(LoggedInEvent event) {
    // Do Something
}

我还在片段附加到的活动中对同一事件进行了另一个订阅,并且订阅做出了反应并且做了事情。所以我的问题是为什么我的片段没有收到LoggedInEvent的活动?

修改 我也在我的活动的onResumeonPause方法中注册/取消注册了公交车。

编辑2: 总线用ThreadEnforcer.ANY

实例化

1 个答案:

答案 0 :(得分:3)

我发现那个将事件发布到总线的类,但是没有在main / ui线程上运行,这导致了在ui中发生变化并且正确反应的不一致。所以现在我的班级在主线程上发布,我从创建我的总线中移除了ThreadEnforcer.ANY,所以现在一切都肯定在主线程上运行。