Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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 正方形的奥托线_Android_Multithreading_Otto - Fatal编程技术网

Android 正方形的奥托线

Android 正方形的奥托线,android,multithreading,otto,Android,Multithreading,Otto,我有个奥托问题。我有一个可以运行的线程,我启动。它进行一些处理,并将结果作为事件发布到总线上 在Runnable类中,通过调用此类的getInstance来检索总线: public final class BusProvider { private static final Bus BUS = new Bus(ThreadEnforcer.MAIN); public static Bus getInstance() { return BUS; }

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

在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.
    }
}
稍后,活动使用相同的方法:BusProvider.getInstance访问总线并注册任何事件。但是,从未调用@Subscribe方法:

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

我的假设是,即使我强制总线位于特定线程上,即ThreadEnforcer.MAIN,因为我正在Runnable上后台运行一个新线程,我以后在活动中没有收到任何事件的原因是,在一个线程上发布,而侦听在另一个线程上,因此将不起作用?

您应该使用ThreadEnforcer。任何

您可以显示事件侦听器是如何/在何处注册的吗?在活动的onCreate方法中:Bus eventBus=BusProvider.getInstance;eventBus.registerthis;eventBus.postnew GeoCodePositionresult.getLat、result.getLng;