我正在使用 EventBus's 将数据从 SplashActivity
发送到主要 Activity postSticky
方法,并根据该数据使用 ViewPager
在 MainActivity
中创建选项卡。
到目前为止,它运行良好,我可以在 @Subscribe onEvent(Example data)
方法中设置 ViewPager
。
例如:
@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);
}
当我们从 ActivityC
调用 MainActivity
时出现问题,
现在 @Subscribe onEvent(Example data)
不会被调用,因为我们只从 SplashActivity
向它发送消息,所以它不会被调用并且 ViewPager
不会更新。
What I want:
我想尽早从 StickyPost 获取数据,以便我可以在 Activity 的 OnCreate
方法中初始化 ViewPager
。
我知道我可以使用应用程序级别的 Singleton 或创建一个 DataHolder
类等来存储数据,但是无论如何可以使用 EventBus
来实现这一点吗?
感谢您抽出时间,如果您需要更多信息,请告诉我,我会更新。
最佳答案
问题的解决方案非常简单,我们可以简单。我们在任何地方调用 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);
}
关于java - EventBus,是否可以在onCreate中获取粘性事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38698095/