有人可以提及 - 并在可能的情况下解释 - 与使用guava eventbus时需要考虑的线程相关的问题吗? 当我订阅一个android Activity并使用(@Subscribe)注释其中一个方法,然后从另一个线程发布一个事件时,我得到一个例外,即事件没有被调度。
(我知道我需要在UI线程上更新用户界面,这不是我所说的。事件不是发送事件!)
编辑: 这是一个例子:
帖子:(这在网络线程中运行)
eventBus.post(new EventShowToast("According to alarm \'" + alarm.getName() + "\', profile \'" + profile.getName() + "\' is run."));
订阅:(活动中的方法,活动注册本身在onResume(...))
@Subscribe
@AllowConcurrentEvents
public void showToast(EventShowToast event) {
showToast(event.getMsg());
}
答案 0 :(得分:0)
答案 1 :(得分:0)
您只能从UI线程敬酒。 EventBus
捕获所有异常然后抛出它自己的“无法调度事件”异常,这就是为什么很难看出真正的错误是什么。