服务的活动巴士

时间:2016-09-09 09:19:32

标签: android greenrobot-eventbus

我有一个接收消息的服务类。这是代码 -

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注册和注销了活动总线。但我真的不知道如何使用事件总线作为我的例子。有人可以帮帮我吗?

1 个答案:

答案 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()
}