EventBus,是否可以在onCreate中获取粘性事件?

Max*_*Max 2 java android greenrobot-eventbus

我正在SplashActivity使用EventBus的 postSticky方法将数据发送到主活动 ,并根据该数据创建MainActivity使用中的标签ViewPager.

到目前为止它工作得很好,我可以ViewPager@Subscribe onEvent(Example data)方法中设置.

例如:

@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onEvent(Example event){
    mainContentList = event.mainContentList;

    if (mViewPager != null) {
        setupViewPager(mViewPager, mainContentList);
    }

    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(mViewPager);
}
Run Code Online (Sandbox Code Playgroud)

当我们调用该问题出现MainActivityActivityC,

现在@Subscribe onEvent(Example data)不会被调用,因为我们只是从它发布它SplashActivity,因此它不会被调用而且ViewPager不会被更新.

我想要的是:

我想尽早从StickyPost获取数据,这样我就可以初始化活动ViewPagerOnCreate方法.

我知道我可以使用应用程序级别Singleton或创建DataHolder类等来存储数据但是无论如何要实现这个目的EventBus吗?

感谢您的时间,如果您需要更多信息,请告诉我,我会更新.

Max*_*Max 7

问题的解决方案非常简单,我们可以很简单.我们getStickyEvent在任何地方打电话,就像这样

例:

EventBus eventbus = Bus.getInstance();

ExampleEvent event = eventbus.getStickyEvent(ExampleEvent.class);

    if ( event != null ){

        // Whatever we want to do with event

        // and then we can remove stickyEvent if we don't need it anymore

        eventbus.removeStickyEvent(event);
    }
Run Code Online (Sandbox Code Playgroud)