Java 如何在android中发送事件,我们可以选择订阅服务器?

Java 如何在android中发送事件,我们可以选择订阅服务器?,java,android,publish-subscribe,greenrobot-eventbus,Java,Android,Publish Subscribe,Greenrobot Eventbus,我有4个班级都订阅了活动消息。我只想向其中两个类发送事件消息。EventBus正在向所有4个类发送事件 使用android可以很容易地解决这个用例 图书馆 允许您定义可以发送事件的通道。频道订户只接收消息。您还可以选择需要接收消息的订阅者 要执行此操作,请执行以下步骤: 步骤1:创建公共频道 步骤2:使用SubscriberID将订阅者添加到此频道 类似地,使用不同的subscriberID将所有4个类添加到此通道 步骤3:将消息事件广播到所选的2个类 步骤5:接收订阅服务器类中的事件 注意:如

我有4个班级都订阅了活动消息。我只想向其中两个类发送事件消息。EventBus正在向所有4个类发送事件

使用android可以很容易地解决这个用例 图书馆

允许您定义可以发送事件的通道。频道订户只接收消息。您还可以选择需要接收消息的订阅者

要执行此操作,请执行以下步骤:

步骤1:创建公共频道

步骤2:使用SubscriberID将订阅者添加到此频道

类似地,使用不同的subscriberID将所有4个类添加到此通道

步骤3:将消息事件广播到所选的2个类

步骤5:接收订阅服务器类中的事件

注意:如果在Android中需要更新UI,请将@OnUiThread添加到 这种方法

有关更多详细信息,请参见->

使用android可以很容易地解决这个用例 图书馆

允许您定义可以发送事件的通道。频道订户只接收消息。您还可以选择需要接收消息的订阅者

要执行此操作,请执行以下步骤:

步骤1:创建公共频道

步骤2:使用SubscriberID将订阅者添加到此频道

类似地,使用不同的subscriberID将所有4个类添加到此通道

步骤3:将消息事件广播到所选的2个类

步骤5:接收订阅服务器类中的事件

注意:如果在Android中需要更新UI,请将@OnUiThread添加到 这种方法


有关更多详细信息,请参见->

提供一些代码而不是场景将非常有用。事件发射器不应该知道订阅者的情况,您可以通过消息中的某个标志筛选订阅者,或者更改订阅逻辑—如果存在单个类的4个实例,会发生什么情况。我必须向该类的2个实例发送事件。提供一些代码而不是场景会很有用。事件发射器不应该知道订阅者的情况,您可以通过消息中的某个标志筛选订阅者,或者更改订阅逻辑。如果存在单个类的4个实例,该怎么办。我必须将事件发送到该类的两个实例。
public static final int publicChannel1 = 1;
.....
try {
    JPost.getBroadcastCenter().createPublicChannel(ChannelIds.publicChannel1);
}catch (AlreadyExistsException e){
    e.printStackTrace();
}
    public static final int  SUBSCRIBER_A_ID = 1;
    ....
    try {
        JPost.getBroadcastCenter().addSubscriber(ChannelIds.publicChannel1, subscriberA, SUBSCRIBER_A_ID);
    }catch (Exception e){
        e.printStackTrace();
    }
    try {
        JPost.getBroadcastCenter().broadcastAsync(ChannelIds.publicChannel1, message, SubsciberA.SUBSCRIBER_A_ID, SubsciberB.SUBSCRIBER_B_ID);
    }catch (JPostNotRunningException e){
        e.printStackTrace();
    }
@OnMessage(channelId = ChannelIds.publicChannel1)
private void onMessage(Message msg){
    System.out.println(msg.getMsg());
}