如何在xmpp asmack中实现消息监听器?

时间:2014-04-21 06:14:14

标签: android xmpp asmack

我创建了3个活动。首先是 loginactivity 来检查登录详细信息。登录成功后,它会跳转到 displayactivity ,我曾经在列表视图中显示某个人的联系人。从列表视图中选择任何联系人后跳转到3个 messageactivity 活动,以显示2个用户之间的聊天。现在我的问题是我在哪里以及如何实现messageListener以便我可以在特定用户的 messageactivity 中显示从其他用户收到的消息?

1 个答案:

答案 0 :(得分:4)

我建议你在XMPPConnection中使用PacketListener而不是MessageListener用于你的个人聊天。您将通过此监听器接收发送给您的所有消息(过滤器指定的类型,最有可能是聊天),然后您可以做任何您想要的事情,无论您是与之聊天的人还是其他人。

这样的事情:

PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
connection.addPacketListener(new PacketListener() 
{
   public void processPacket(Packet packet) 
   {
      Message message = (Message) packet;
      String body = message.getBody();
      String from = message.getFrom();
   }
}, filter);

与此同时,您可能必须使用sendPacket而不是sendMessage,但它几乎相同,您不必担心单个Chat实例。我希望它能达到目的。