【问题标题】:Common Event Bus Instance公共事件总线实例
【发布时间】:2017-04-06 07:40:01
【问题描述】:

我已在一项活动中注册了事件总线,例如 - EventBus.getDefault.register(this);

但现在我想将它注销到另一个活动中。那么如何实现呢?

【问题讨论】:

  • 如果您有对已注册活动的引用,您可以在不同的活动中取消注册相同的注册活动。但建议取消注册 onPause 状态的活动。否则会导致内存泄漏。
  • @Krish 你能给我一个简短的例子吗?
  • 在你想注销的地方贴一些代码。

标签: android event-bus


【解决方案1】:

但现在我想将其注销到另一个活动中。

您不能取消注册另一个活动,因为它没有注册。您必须取消注册您注册的同一对象。通常onResume()/onPause()是处理它的好地方。

【讨论】:

  • 但是当我从后台删除我的应用程序时,当我将其注册到 onStart() 并在 onDestroy() 方法中取消注册时,我应该怎么做才能取消注册相应活动的事件总线?跨度>
  • 这听起来像是糟糕的设计。您需要在后台注册您的活动吗?!用户可能永远不会返回它,所以没有意义。
  • 不,我在启动器活动中创建了一个订阅者方法,我需要通过事件发布在其他活动中调用它,这就是为什么我在 onDestroy() 而不是 OnPause() 中取消注册事件总线。但是当应用程序从后台删除,那么我应该如何取消注册该事件总线?
  • @sanil 如果用户杀死应用程序,您不必取消注册活动。在 onDestroy 中注销它不是一个好主意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多