gpt4 book ai didi

android - Android 上的 EventBus : how to implement dynamic queues vs. 基于类的事件订阅?

转载 作者:行者123 更新时间:2023-11-29 01:18:39 26 4
gpt4 key购买 nike

我想使用 EventBus(通过 Greenrobot 或任何其他工具)在我的 Android 应用程序的组件之间进行通信。

在所有示例中,发布/订阅都是使用“类”作为“主题”实现的,即每个订阅者声明它应该接收的事件的确切类。

不知道有没有更动态的机制

这是我需要完成的:我的应用程序需要向多个系统发送命令(例如,“Hello!”):1、2、... N。所有这些系统的命令结构都是相同的.

因此,发布者能够将“command/1”、“command/2”、...”、“command/N”发送到队列是有意义的 - 但要求没有意义每个系统定义一个“CommandN”类。

有什么聪明的方法可以做到这一点,同时保持发布/订阅解耦?

提前致谢

最大

最佳答案

我推荐的一种简单方法是在事件类中添加变量作为命令。

每个订阅者都会收到事件,但只有在命令号与其要求相同时才做某事。

这里是 EventBus 的示例代码:

public class CommandEvent{
private int command;

public CommandEvent(int command) {
this.command = command;
}

public int getCommand() {
return command;
}
}

然后在你的每个订阅者中:

@Subscribe
protected void onMessage(CommandEvent event) {
// Only do something when it's its command it want.
if(event.getCommand() = myCommandId) {
// do something here.
}
}

关于android - Android 上的 EventBus : how to implement dynamic queues vs. 基于类的事件订阅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38183848/

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