过去几天我一直在和奥托一起玩,这太棒了.然而,我遇到了一个问题,我试图从片段到活动进行交流.为了简单起见,我有一个活动来保存片段,而在片段中我有一个按钮,它只是简单地发布一个事件.
@Inject Bus bus;
...
...
bus.post(new ReadStatusEvent("23"));
在Activity中我有一个Subscribe方法.
@Subscribe
public void onReadStatusEvent(ReadStatusEvent event){
Timber.i("sub:"+event.getReadStatusID());
}
这是活动
public class ReadStatusEvent {
private final String readStatusID;
public ReadStatusEvent(String readStatusID) { this.readStatusID = readStatusID; }
public String getReadStatusID() { return readStatusID; }
}
我正在使用Dagger,所以我的Otto Bus是一个由SimpleModule文件注入的单例.
@Provides @Singleton
Bus provideBus() {
return new Bus(ThreadEnforcer.ANY);
}
我一整天都在努力,但由于某种原因,从未调用过Subscribe方法.
编辑:我刚刚尝试使用Otto plugin for Android Studio,每当我点击@Subscribe或bus.post(..)时,它会继续搜索但找不到任何内容(到目前为止没有找到用法).我想我在某处做了一件非常糟糕的事情.
解决方法:
你对奥托插件的暗示使我想到了你的进口.
您确定使用的是“com.squareup.otto.Subscribe”而不是“com.google.common.eventbus.Subscribe”或任何其他套餐吗?