我使用了Android XMPP集成asmack API ...XMPP:Asmack連接PacketListener問題...
的XMPP連接的認證成功後,我已經使用PacketListener的傳入消息通知。
我的應用程序是基於選項卡的應用程序。當我通過單擊好友列表轉到聊天活動時,我的數據包偵聽器將添加到OnCreate方法中的連接中。
問題是,多次Im移動到這個屏幕上,這個監聽器的數量被添加,並且我得到相同的消息多次。
該問題的解決方案?
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);
不工作,消息未收到。 – 2015-06-03 13:26:53