使用事件总线更新接口的缺点



我已经开始使用事件总线库Otto来更新我的Android应用程序中不同组件的接口(活动)。例如,当对Model类进行更改时,我将其发布到事件总线,或者如果AsyncTask已经完成,我将事件发布到onPostExecute方法中的事件总线。

到目前为止,我使用一个事件总线进行用户界面更新。我注意到,即使是暂停的活动也会收到这些事件。在文档中它声明

暂停的活动不接收用户输入,不能执行任何代码。

我觉得有争议,我只能这样解释,这段代码当然是在另一个线程上执行的,但仍然在活动中。

我的问题是,这种用法会导致任何缺点吗?多个活动处于暂停状态、执行事件、更新(暂停)活动的元素或忽略它们。这是否会导致明显的开销,或者我可以忽略它?

是否有一个不同的方法,当一个人想要使用事件总线更新接口?

这是否会导致明显的开销,或者我可以忽略它?

抽象地说那是不可能的。这取决于你在做什么工作以及你做的频率。

是否有一个不同的方法,当一个人想要使用事件总线更新接口?

没有要求你的活动和片段在后台监听事件。例如,可以注册onResume()中的事件,取消注册onPause()中的事件。然后你可以使用其他技术(例如,Otto的@Producer模式)来更新你的活动/片段的UI 整体当它回到onResume()的前景

最新更新