我有一个接收消息的服务类。这是代码 -
public void processJSONMessage(String data) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
TextMessage textMessage = objectMapper.readValue(data, TextMessage.class);
textMessageString = textMessage.getMessage();
}
现在我需要将此textMessageString
发送到MAinActivity
并显示一个Toast消息。我想使用事件总线。我已经在MAinActivity注册和注销了活动总线。但我真的不知道如何使用事件总线作为我的例子。有人可以帮帮我吗?
答案 0 :(得分:0)
您在EventBus中使用哪个库?
如果要从扩展的Service类中推送事件,则需要获取EventBus的实例并从那里发布。例如,使用Greenbot,您可以执行类似
的操作public void processJSONMessage(String data) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
TextMessage textMessage = objectMapper.readValue(data, TextMessage.class);
textMessageString = textMessage.getMessage();
EventBus.getDefault().post(new MessageEvent(textMessageString));
}
其中MessageEvent
类只是一个接收string
的POJO(请参阅quick start guide)。您的MainActivity(假设您已在onCreate
中注册)将能够通过创建这样的函数来收听事件:
@Subscribe
public void onMessageEvent(MessageEvent event){
//Get the message string, i.e.: event.getMessage()
}