简单的BusProvider.getInstance().post()
带来的异常不是主线程
。
如何使用 Otto 事件总线将事件从 Service 发送到 Activity?
最佳答案
要从任何线程(主线程或后台)发帖并在主线程上接收,请尝试类似
public class MainThreadBus extends Bus {
private final Handler mHandler = new Handler(Looper.getMainLooper());
@Override
public void post(final Object event) {
if (Looper.myLooper() == Looper.getMainLooper()) {
super.post(event);
} else {
mHandler.post(new Runnable() {
@Override
public void run() {
MainThreadBus.super.post(event);
}
});
}
}
}
注意:感谢 Jake Wharton 和 https://github.com/square/otto/issues/38 上的“pommedeterresaute”。对于一般方法。我只是用包装类而不是子类来实现它。
关于android - 如何使用 Otto 事件总线将事件从服务发送到 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15431768/