如何删除使用啪XMPPClient的数据包监听器 [英] How to remove packet listeners of XMPPClient using Smack
问题描述
使用我开发了一个聊天应用的啪按 XMPP服务器(Openfire的)。为获得传入的消息,我用的 PacketFilter
这是进入的味精code: -
I developed a chat app using Smack by XMPP server(openFire). For getting incoming message, i used to PacketFilter This is incoming msg code:-
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
connection.addPacketListener(new PacketListener() {
public void processPacket(Packet packet) {
Message message = (Message) packet;
incomemsg = message.getBody();
if (incomemsg != null) {
String fromName = StringUtils.parseBareAddress(message.getFrom());
frmname = message.getBody();
Log.i("XMPPClient", "Got text [" + message.getBody() + "] from [" + fromName + "]");
// Add the incoming message to the list view
mHandler.post(new Runnable() {
public void run() {
// show the msg of chat in right side.
showMessage(frmname,false);
scrollContainer.getFocusables(scrollContainer.getChildCount());
}
});
}
}
}, filter);
但我想活动接近过程中去除paketListener或停止或销毁。我按照这个 http://community.igniterealtime.org/thread/28921 以删除数据包监听器
但是没有找到解决办法。
But i want to remove paketListener during activity close or stop or destroy. i follow this http://community.igniterealtime.org/thread/28921 for remove packet listeners But not found solution.
请检查。感谢您的时间。
please check. thank you for your timing.
推荐答案
下面的东西,你可能启动:
Here's something you could start with:
public class YourClass {
private PacketListener packetListener;
....
}
后来一度想要实例化PacketListener然后:
Then later on once you want to instantiate the PacketListener:
packetListener = new PacketListener(
....
);
connection.addPacketListener(packetListener);
和删除它:
connection.removePacketListener(packetListener);
这篇关于如何删除使用啪XMPPClient的数据包监听器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!