2

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

しかし、アクティビティのクローズ、停止、または破棄中に、paketListener を削除したいと考えています。私はこのhttp://community.igniterealtime.org/thread/28921に従って、パケットリスナーを削除しますが、解決策が見つかりません。

チェックしてください。タイミングをありがとう。

4

2 に答える 2