2

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

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

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

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

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

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

4

1 回答 1

4

这会导致明显的开销还是我可以忽略它?

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

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

不要求您的活动和片段在后台监听事件。例如,您可以在 中注册onResume()和取消注册onPause()。然后,您可以使用其他技术(例如 Otto模式@Producer)在.onResume()

于 2014-06-20T12:18:40.623 回答