Android 正方形的奥托线
我有个奥托问题。我有一个可以运行的线程,我启动。它进行一些处理,并将结果作为事件发布到总线上 在Runnable类中,通过调用此类的getInstance来检索总线: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; }
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;