gpt4 book ai didi

android - Roboguice、AndroidAnnotations 和线程间的事件

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:42 26 4
gpt4 key购买 nike

当RoboGuice触发事件时,我的事件回调会在哪里执行,在哪个线程?例如,我有一个具有 do(@Observes OnUpdateUiEvent e) 的 Activity 。我还有一个触发新 OnUpdateUiEvent("data") 的后台线程。那么,我的 do() 方法将按照我的理解在 bg 线程中执行吗?如果我用来自 AndroidAnnotations 的 @Background 注释 do() 会怎样?预处理器是否应该在 runInUiThread() 中调用 do()?

如果一切顺利,我认为这种模式将提供线程间通信的最简单方式。

最佳答案

据我所知herethere ,您可以使用@Observes(EventThread.CURRENT)、@Observes(EventThread.UI) 或@Observes(EventThread.BACKGROUND) 指定线程与 RoboGuice 中的事件混合的方式。

默认为“CURRENT”,这意味着如果您没有指定任何内容,事件监听方法将与接收事件的方法在同一个线程中执行。

所以是的,如果您从后台线程触发事件,do() 将在后台线程中执行。

如果您在 do() 方法上添加@Background,那么它将始终在一个单独的线程中执行,与您触发事件的线程不同。

如果您不确定,请放置一个断点并观察线程名称:-)。

这是否回答了您的问题?

关于android - Roboguice、AndroidAnnotations 和线程间的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8465715/

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