diff --git a/library/src/main/java/com/squareup/otto/AnnotatedHandlerFinder.java b/library/src/main/java/com/squareup/otto/AnnotatedHandlerFinder.java index 31678b6..7368f52 100644 --- a/library/src/main/java/com/squareup/otto/AnnotatedHandlerFinder.java +++ b/library/src/main/java/com/squareup/otto/AnnotatedHandlerFinder.java @@ -49,7 +49,10 @@ private static void loadAnnotatedMethods(Class listenerClass) { Map, Set> subscriberMethods = new HashMap, Set>(); Map, Method> producerMethods = new HashMap, Method>(); - for (Method method : listenerClass.getDeclaredMethods()) { + Class superClass = listenerClass.getSuperclass(), targetClass = listenerClass; + if (superClass != null && listenerClass.getSimpleName().equals(superClass.getSimpleName() + "_")) + targetClass = superClass; + for (Method method : targetClass.getDeclaredMethods()) { if (method.isAnnotationPresent(Subscribe.class)) { Class[] parameterTypes = method.getParameterTypes(); if (parameterTypes.length != 1) {