Square Otto:@Subscribe未在片段中调用(Android)

Jua*_*via 2 android android-fragments otto

我在Android中有一个抽象片段,我从otto总线执行注册和取消注册方法.此外,我@Subscribe在这个类中有一个方法.

public abstract class MyBaseFrag extends Fragment {

    @Override
    public void onResume() {
        super.onResume();
        bus.register(this);
    }
    // unregister onPause...

    @Subscribe
    public void loadMapOnAnimationEnd(TransitionAnimationEndEvent event) {
        loadMap();
    }
}
Run Code Online (Sandbox Code Playgroud)

我有另一个片段,从这个延伸,是它正在被执行的片段.我发送事件但从未调用该方法.

public class MyFragment extends MyBaseFrag {
    // my code here..
}
Run Code Online (Sandbox Code Playgroud)

问题:

我发送事件但从未调用该方法.

Jua*_*via 9

我意识到这@Subscribe在抽象类中不起作用,但它在具体类中起作用.

只是移动@Subscribe methodMyFragment(不是抽象类)它只是工作:

public abstract class MyBaseFrag extends Fragment {

    @Override
    public void onResume() {
        super.onResume();
        bus.register(this);
    }
    // unregister onPause...
}


public class MyFragment extends MyBaseFrag {
    @Subscribe
    public void loadMapOnAnimationEnd(TransitionAnimationEndEvent event) {
        loadMap();
    }
}
Run Code Online (Sandbox Code Playgroud)

有用!