gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 16:00:00 25 4
gpt4 key购买 nike

我正在使用 EventBus's 将数据从 SplashActivity 发送到主要 Activity postSticky 方法,并根据该数据使用 ViewPagerMainActivity 中创建选项卡。

到目前为止,它运行良好,我可以在 @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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com