我已将我的一些视图从 Activity 委托给一个名为 BottomBar 的类。
我想要的是当我返回按钮将事件发送到 BottomBar 以便开始播放动画时。
@Override
public void onBackPressed() {
if (isSubMenuDisplayed) {
isSubMenuDisplayed = false;
EventBus.getDefault().post(new EventStartReverseAnimation(true));
//post event to fragment
} else {
super.onBackPressed();
}
}
这是我的 onBackPressed() 代码,我在 BottomBar 有 onEvent :
public void onEventStartReverseAnimation(EventStartReverseAnimation event) {
swedsFlag = event.getFlag();
if (swedsFlag) {
playBackAnimation(true);
}
}
当然,我在 Activity 上注册/取消注册 EventBus,然后我尝试在 BottomBar 类上注册 eventBus,但我得到了帖子标题中的异常:
de.greenrobot.event.EventBusException: Subscriber class android.app.Application has no public methods called onEvent
该应用程序在我为 BottomBar 类注册 EventBus 的行处崩溃:
public BottomBar(Context context) {
this.context = context;
myServiceClient = new MyServiceClient();
myServiceClient.initializeRestClient();
bbUtils = new BottomBarUtils(context);
EventBus.getDefault().register(context);
}