gpt4 book ai didi

android - 我可以在 Activity 通信中使用 EventBus 吗?

转载 作者:行者123 更新时间:2023-11-30 02:00:49 25 4
gpt4 key购买 nike

共有三个 Activity ABC

  1. 在 Activity A onCreate() 中注册 EventBus,在 onDestroy() 中注销,还有一个方法 onEvent (TestEvent e);

  2. Activity A 启动 Activity B

  3. Activity B 启动 Activity C

  4. 在 Activity C 中:

    EventBus.getDefault().post(new TestEvent("close A"));

我是这样使用EventBus的,效果很好。我的代码有什么问题吗?

最佳答案

没关系。 EventBus 是线程安全的,并且有很多方法可以使其更易于使用,例如 onEventMainThread、onEventBackgroundThread、onEventAsync。

您的代码的问题是:您的 Activity 将继续获取事件,即使它在后台也是如此。没关系(在这种特殊情况下)。但是,如果您将来必须实现其他功能,请记住这一点:

  • onCreate 注册 -> onDestroy 注销
  • onStart 注册 -> onStop 注销
  • onResume 注册 -> onPause 取消注册

还有一点:您必须绝对确保您的 Activity 仅注册一次。因为,如果您多次注册,您将收到与注册次数一样多的事件。因此,请像这样修改您的寄存器:

if (!EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().register(this);
}

如果您需要更多详细信息,请阅读有关 EventBus 的更多信息 here .

但是,如果您遵循这些简单的规则,您的 Activity 的生命周期。我经常使用它,但没有遇到任何问题。

关于android - 我可以在 Activity 通信中使用 EventBus 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31510573/

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