java Greenrobot EventBus3未向我的订阅者发布
在我的应用程序中,我将一个job
传递到job-queue
中,在我的作业队列中,我已经注册了我的EventBus
,我正在尝试post
事件,希望我的subscriber
方法能够收到它。我最近刚从Otto's
{EventBus
3
以下是我试图实现的一个示例:
TestPresenterImpl.class
(该类已被TestActivity.class
实例化)
@Override
public void addJob(JobData jobData) {
jobManager.addJobInBackground(new SendUpdateJob(jobData));
}
@Subscribe
@Override
public void onUpdate(JobAddedEvent event) {
if (event.getStatus() == 1) {
Log.i(LOG_TAG, "test");
}
}
@Override
public void onStart() {
mBus.getDefault().register(this);
}
@Override
public void onStop() {
mBus.getDefault().unregister(this);
}
SendUpdateJob.class
(这个类使用先前由Path维护的安卓优先级作业队列处理队列中的作业)
@Override
public void onAdded() {
Log.i(LOG_TAG, "On added");
mBus.getDefault().register(this);
JobAddedEvent event = new JobAddedEvent();
event.setStatus(1);
mBus.getDefault().post(event);
}
通常这在Otto
上起作用,但由于这有点不同,我想知道我做错了什么。我得到的错误是:"SendJobUpdate and its super classes have no public methods with the @Subscribe annotation".
我在这里做错什么了吗
我还确保我正在导入import org.greenrobot.eventbus.Subscribe;
,因为我注意到其他人指出他们已经导入了谷歌
# 1 楼答案
你的
EventBus.getDefault().register(this);
应该遵循你的@Subscribe
方法所在的活动,而不是mBus.getDefault().post(event);
活动第一活性
SecondActivity(不要在此活动中注册,因为您没有任何
@Subscribe
方法)}