Android Otto:未接收事件的片段订阅
我有一个片段,在片段Android Otto:未接收事件的片段订阅,android,otto,Android,Otto,我有一个片段,在片段onResume和onPause方法中注册和注销了总线。使用下面的BusProvider.getInstance().register(this)和BusProvider.getInstance()。取消注册(此) 我的订阅定义如下: @Subscribe public void onLogin(LoggedInEvent event) { // Do Something } 在片段所附加到的活动中,我还有另一个对同一事件的订阅,该订阅会做出反应并完成它的事情。所以
onResume
和onPause
方法中注册和注销了总线。使用下面的BusProvider.getInstance().register(this)
和BusProvider.getInstance()。取消注册(此)代码>
我的订阅定义如下:
@Subscribe public void onLogin(LoggedInEvent event) {
// Do Something
}
在片段所附加到的活动中,我还有另一个对同一事件的订阅,该订阅会做出反应并完成它的事情。所以我的问题是,为什么我的片段没有收到LoggedInEvent
的事件
编辑:
我还在活动的onResume
和onPause
方法中注册/取消注册总线
编辑2:
总线是用ThreadEnforcer实例化的。任何
我都发现,将事件发布到总线上的类,但没有在主/ui线程上运行,这导致了无法看到ui中发生的更改和正确反应的不一致性。因此,现在我的类正在主线程上发布,我从创建总线的过程中删除了ThreadEnforcer.ANY
,这样现在一切都可以确定在主线程上运行 我发现该类正在将事件发布到总线上,但没有在主/ui线程上运行,这导致无法看到ui中发生的更改并正确响应。因此,现在我的类正在主线程上发布,我从创建总线的过程中删除了ThreadEnforcer.ANY
,这样现在一切都可以确定在主线程上运行 我发现该类正在将事件发布到总线上,但没有在主/ui线程上运行,这导致无法看到ui中发生的更改并正确响应。因此,现在我的类正在主线程上发布,我从创建总线的过程中删除了ThreadEnforcer.ANY
,这样现在一切都可以确定在主线程上运行 我发现该类正在将事件发布到总线上,但没有在主/ui线程上运行,这导致无法看到ui中发生的更改并正确响应。因此,现在我的类正在主线程上发布,我从创建总线的过程中删除了ThreadEnforcer.ANY
,这样现在一切都可以确定在主线程上运行