我有一个关于事件总线设计模式与 androids 活动/片段/服务相结合的具体问题。
到目前为止我所理解的:当使用事件总线时,我可以说,为我的整个应用程序创建一个事件总线(单例设计模式)。现在我可以让单个活动/片段/服务在事件总线上发布一个事件,事件总线将消息传播到订阅此特定事件的所有其他活动/片段/服务。这样,所有其他活动/片段/服务都可以对此特定事件做出反应。为了让所有活动/片段/服务能够使用事件总线,他们必须在总线上注册(最好在他们的 onCreate*() 方法中),如果他们即将停止/取消/销毁,他们应该取消注册.
这让我想到了我的问题:假设我想实现一个全新的操作栏(不是 android 或 sherlock 或任何其他,我的意思是从头开始)。据我了解,我可以实现一个带有事件总线的操作栏。因此,我的主要活动将在活动布局顶部带有按钮,并且每个按钮都实现了自己的 onClick 方法。对于每个按钮,一旦单击关联的按钮,我就会有一个可见的片段。现在在每个 onClick 方法(每个按钮一个)中,我可以将一个事件发布到事件总线,然后总线将其传播到片段。然后片段根据附加的事件信息检查它们是否应该可见。
现在这里的问题是,每个片段都需要先注册到事件总线,所以为了让这个工作每个片段的 onCreate() 方法必须至少调用一次,对吗?
感谢您对此的任何见解!
史蒂芬