EventBus使用,内存和架构

时间:2014-10-28 17:14:35

标签: android event-bus

我开始在我的应用程序中使用EventBus并且它非常好用,它解决了很多问题并简化了代码,并且在所有线程和所有内容的整个应用程序中的传播都很棒,但我觉得我可能会滥用事件。

现在一切都很好,我在功能强大的设备上进行测试,应用响应非常好,但我还有很多编码要做,而且我开始质疑自己将如何影响拥有太多的事件触发整个应用程序。

所以问题是对于那些有使用该库经验的人,如果我的应用程序中有很多事件存在问题,如果存在与使用此事件相关的一些已知内存问题。我试图明智地使用它,但是很难不在架构中包含它,因为它是一个非常好的功能。无论如何,如果你对这个主题有什么想说的话会很好,因为我有很多编码要做,如果我的架构出错就会出现问题,并且由于与事件有关的一些问题而不得不回去做更改。

PD。我正在谈论原生Android应用程序,有很多网络

THX

2 个答案:

答案 0 :(得分:4)

只要您遵循组件生命周期更改,在您的应用中包含许多事件就不成问题:在onStart()中注册事件并在onStop()中取消注册。如果你这样做,那么只有相对较小的活动组件子集将被订阅事件,这使整个解决方案变得精简。

在我的应用中,我遇到了中央单例事件总线实例的一些问题,这就是为什么我使用lightweight and fast event bus能够附加到某个活动并尊重它的生命周期的原因。有了它,我可以为每个活动提供一个总线实例,它非常轻量级。

答案 1 :(得分:2)

我明白你在说什么,我也在我们公司的一个非常庞大的代码库上工作,我们经常使用事件总线。你只需要小心它,但是找出应用程序中哪些地方订阅某个事件会很烦人。如果有多个订阅,那么不得不浏览应用程序并不是很有趣。作为解决方案,我喜欢使用这个令人惊叹的Android Studio插件用于Otto事件总线,它将无缝地将您和事件带到其订阅者,反之亦然。

https://github.com/square/otto-intellij-plugin

这将有助于使事件和订阅者之间的导航变得更容易。