我正在使用asmack API进行Android XMPP集成...
在成功认证xmpp连接后,我使用PacketListener来接收传入消息通知。
我的应用程序是基于选项卡的应用程序。当我通过点击好友列表移动到聊天活动时,在OnCreate方法中将我的数据包侦听器添加到连接中。
问题是,每次我移动到此屏幕,都会添加相同数量的侦听器,并多次收到相同的消息。
有解决此问题的方法吗?
在成功认证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);