Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Otto:未接收事件的片段订阅_Android_Otto - Fatal编程技术网

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
,这样现在一切都可以确定在主线程上运行