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)
当我们调用该问题出现MainActivity的ActivityC,
现在@Subscribe onEvent(Example data)不会被调用,因为我们只是从它发布它SplashActivity,因此它不会被调用而且ViewPager不会被更新.
我想要的是:
我想尽早从StickyPost获取数据,这样我就可以初始化活动ViewPager的OnCreate方法.
我知道我可以使用应用程序级别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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1383 次 |
| 最近记录: |