gpt4 book ai didi

java - 使用事件总线更新界面的缺点?

转载 作者:搜寻专家 更新时间:2023-11-01 07:58:47 24 4
gpt4 key购买 nike

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

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

The paused activity does not receive user input and cannot execute any code.

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

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

如果想使用事件总线来更新界面,是否有不同的方法?

最佳答案

Does this result in a noticeable overhead or can I ignore it?

这不可能抽象地说。这将取决于您从事的工作以及您从事这项工作的频率。

Is there a different approach when one wants to use event bus for updating the interface?

没有要求您的 Activity 和 Fragment 在后台监听事件。例如,您可以在 onResume() 中注册 Activity 并在 onPause() 中注销.然后,您可以使用其他技术(例如,Otto 的 @Producer 模式)在 Activity/fragment 的 UI 在 onResume() 返回前台时整体更新.

关于java - 使用事件总线更新界面的缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com