android - 如何使用 Smack 删除 XMPPClient 的数据包监听器

标签 android xmpp smack asmack

我使用XMPP服务器(openFire)Smack开发了一个聊天应用程序。为了获取传入消息,我曾经使用 PacketFilter 这是传入的消息代码:-

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);

但我想在 Activity 关闭或停止或销毁期间删除 paketListener。我关注这个http://community.igniterealtime.org/thread/28921用于删除数据包监听器 但没有找到解决方案。

请检查。感谢您的配合。

最佳答案

您可以从以下内容开始:

public class YourClass {
    private PacketListener packetListener;
    ....
}

稍后当您想要实例化 PacketListener 时:

packetListener = new PacketListener(
....
);
connection.addPacketListener(packetListener);

删除它:

connection.removePacketListener(packetListener);

关于android - 如何使用 Smack 删除 XMPPClient 的数据包监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16164065/

相关文章:

java - 当使用 soundPool 时,我的第一个声音循环,其余的抛出状态 12

安卓 : how Custom Dialog returns intent result to parent activity

node.js - 注册时的 node-xmpp C2SServer 连接问题

java - Smack 4 在连接时抛出 "SSLHandshakeException: ValidatorException: SunCertPathBuilderException"

java - 使用 md5 哈希密码 Smack 登录 Openfire

android - 如何为android设置actionbar标签的高度

android - asmack XMPP 新用户注册

android - 无法保持来自粘性服务 android 的持久 XMPP 连接

android - Smack 和 aSmack 有什么区别?

android - 从命令行签署 Android App Bundle