我正在使用 asmack api 进行 Android XMPP 集成...
在成功验证 xmpp 连接后,我已使用 PacketListener 进行传入消息通知。
我的应用程序是基于选项卡的应用程序。当我通过单击好友列表移动到聊天活动时,我的数据包侦听器被添加到 OnCreate 方法中的连接中。
问题是,我移动到此屏幕的次数与添加的听众数量一样多,并且我多次收到相同的消息。
这个问题的任何解决方案?
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
PacketListener pListener = new PacketListener() {
public void processPacket(Packet packet) {
Message message = (Message) packet;
if (message.getBody() != null) {
String fromName = StringUtils.parseBareAddress(message
.getFrom());
Log.i("XMPPClient", "Got text [" + message.getBody()
+ "] from [" + fromName + "]");
messages.add(fromName + ":");
messages.add(message.getBody());
// Add the incoming message to the list view
mHandler.post(new Runnable() {
public void run() {
setListAdapter();
}
});
}
}
};
connection.addPacketListener(pListener, filter);