Java 如何在android中发送事件,我们可以选择订阅服务器?
我有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添加到 这种方法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个实例,会发生什么情况。我必须向该类的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());
}