事件总线在应用程序类中注册和取消注册

时间:2017-04-04 10:14:09

标签: android event-bus

我应该在应用程序类中注册和取消注册事件总线吗?如果是,那么我应该在哪里注册并取消注册呢?

一旦事件总线的注册在应用程序类中完成,那么我是否需要在suscriber类中注册事件总线?

如果我在Application类中添加一些方法作为suscriber方法,是否会出现问题?

3 个答案:

答案 0 :(得分:2)

除了您之外,没有人可以判断您是否应该或不应该在EventBus上注册Application作为听众 - 这取决于您应用的用例。

如果事件与特定Activity / Fragment / Service相关 - 请将其注册为听众。

如果该事件与"全球"相关感觉(即基于事件的集中错误处理) - 您可以将Application注册为监听器。

您不需要从EventBus取消注册Application以防止内存泄漏,因为:

  • 他们的lyfe循环是相同的(Application可以被视为Singleton对象)
  • onDestroy()
  • 中没有Application方法

答案 1 :(得分:1)

您可以创建一个具有onStart()和onStop()具体方法和事件总线实例的Common类,现在您可以在不需要时通过触发该类来取消注册EventBus实例。

答案 2 :(得分:0)

订阅onStart()取消订阅onStop()或您希望的任何其他Android生命周期组件。

如果它实现/扩展它或在你的类中有任何实例,你应该能够在订阅者类中拥有你的事件总线的实例。