0

我有一个奥托问题。我有一个可运行的线程,我开始了。它进行一些处理并将结果作为事件发布到总线上。

在 Runnable 类中,通过调用此类的 getInstance 来检索总线:

public final class BusProvider {
    private static final Bus BUS = new Bus(ThreadEnforcer.MAIN);

    public static Bus getInstance() {
        return BUS;
    }

    private BusProvider() {
        // No instances.
    }
}

稍后,Activity 使用相同的方法: BusProvider.getInstance() 来访问总线并注册任何事件。但是,永远不会调用 @Subscribe 方法:

@Subscribe
public void onGeoCodePosition(GeoCodePosition geoCodePosition) {
    .....
}

我的假设是,即使我强制总线位于特定线程上,即。ThreadEnforcer.MAIN,因为我在 Runnable 上设置了一个新线程,所以我稍后在 Activity 中没有收到任何事件的原因是在一个线程上发布,而在另一个线程上进行监听,因此不起作用?

4

1 回答 1

0

你应该使用 ThreadEnforcer.ANY

于 2015-02-24T15:22:12.110 回答