首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事件总线(Otto或绿色机器人)是否依赖于onCreate*()-callbacks?

事件总线(Otto或绿色机器人)是否依赖于onCreate*()-callbacks?
EN

Stack Overflow用户
提问于 2014-08-26 18:15:46
回答 1查看 1.1K关注 0票数 0

我有一个关于事件总线设计模式与机器人活动/片段/服务相结合的具体问题。

到目前为止,我理解的是:当使用我创建的事件总线时,让我们为整个应用程序创建一个单一的事件总线(单例设计模式)。现在,我可以让单个活动/片段/服务在事件总线上发布一个事件,而事件总线将消息传播到订阅此特定事件的所有其他活动/片段/服务。这样,所有其他活动/片段/服务都可以对此特定事件作出反应。为了使所有活动/片段/服务能够使用事件总线,它们必须在总线中注册(最好在其onCreate*()-methods中注册),如果它们即将被停止/取消/销毁,则应该取消注册。

这就引出了我的问题:假设我想实现一个全新的actionbar (不是android或者sherlock,我是说从头到尾)。就我的理解而言,我可以使用事件总线实现actionbar。因此,我将有我的主要活动,按钮顶部的活动-布局,每个按钮有自己的onClick-方法实现。对于每个按钮,只要单击相关按钮,就会有一个可见的片段。现在,在每个onClick-方法(每个按钮一个)中,我可以将一个事件发布到事件总线,然后总线将其扩展到片段。然后,这些片段根据附加的事件信息检查它们是否应该可见。

现在的问题是,每个片段都需要首先在事件总线中注册,因此为了使其工作,每个片段onCreate()-method必须至少调用一次,对吗?

谢谢你对此的洞察力!

斯特芬

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-26 19:07:43

为了使所有活动/片段/服务能够使用事件总线,它们必须向总线注册(最好在它们的onCreate*()-methods中)

onCreate()可能是合适的位置,也可能不是合适的位置,特别是对于活动和片段。

如果他们即将被停止/取消/销毁,他们应该注销。

这就是为什么onCreate()可能是注册的合适地点,也可能不是合适的地方。注册和不注册应该发生在配对的生命周期方法中。

假设我想实现一个全新的actionbar (不是android的或者神探夏洛克或者其他的,我的意思是从零开始)

在袖口上,注意您描述中的任何内容都不需要这一点,因为所有这些都可以通过标准操作条或它的后端来完成。

现在,在每个onClick-方法(每个按钮一个)中,我可以将一个事件发布到事件总线,然后总线将其扩展到片段。然后,这些片段根据附加的事件信息检查它们是否应该可见。

或者,活动可以告诉片段“哟,你的按钮被点击了”。事件总线非常适合于发送方与接收方之间没有直接连接的情况(例如服务到活动),或者事件可能会引起多个方面的兴趣。在这种情况下,使用事件总线似乎是不必要的,因为活动已经知道其片段。

每个片段都需要首先在事件总线中注册,因此为了使其工作,每个片段onCreate()-method必须至少调用一次,对吗?

对,是这样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25512525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档