当RoboGuice触发Event时,我的事件回调将在哪里执行,在哪个线程? 例如,我有一个活动(@Observes OnUpdateUiEvent e)。 我还有一个后台线程,它会触发新的OnUpdateUiEvent(“data”)。 那么,我的do()方法将在我理解的bg线程中执行? 如果我使用AndroidAnnotations中的@Background注释do(),会是什么? 预处理器是否应该在runInUiThread()中调用do()?

如果一切正常,我认为这种模式将提供线程之间最简单的通信方式。

===============>>#1 票数:6 已采纳

至于我可以看到在这里那里 ,你可以指定线程方式应与RoboGuice事件混合,通过使用@Observes(EventThread.CURRENT),@Observes(EventThread.UI)或@Observes(EventThread.BACKGROUND)。

默认值为“CURRENT”,这意味着如果未指定任何内容,则事件侦听方法将在与接收事件的方法相同的线程中执行。

所以是的,如果你从后台线程中激活你的事件,do()将在后台线程中执行。

如果在do()方法上添加@Background,那么它将始终在一个单独的线程中执行,该线程与您触发事件的线程不同。

如果您不确定,请设置断点并观察线程名称:-)。

这回答了你的问题吗?

  ask by naixx translate from so

未解决问题?本站智能推荐: