2

Smack ライブラリを使用して XMPP チャットを開いた後、チャットを明示的に閉じる必要はありますか (または可能ですか)?

4

5 に答える 5

3

独自の参照を削除するだけで、最終的には自然に消えてしまいます。ChatManager 内の弱参照によってのみ保持されるため、最終的に GC されます。

ただし、Chat クラスが GC されるのを待っている間にこれ以上チャット メッセージを受信したくない場合は、おそらくリスナーも削除する必要があります。

于 2011-03-03T17:29:08.847 に答える
2

プロトコル的には、 XEP-85 (チャット状態通知) を実装して、チャットを終了したことを相手に知らせることができます。

<message 
    from='juliet@capulet.com/balcony'
    to='romeo@shakespeare.lit/orchard'
    type='chat'>
  <thread>act2scene2chat1</thread>
  <gone xmlns='http://jabber.org/protocol/chatstates'/>
</message>
于 2011-03-03T20:55:55.643 に答える
1

開いているすべてのチャットを表示するサイド パネルがあります。ユーザーは、開いているチャットを誰でも削除できます。接続を閉じると、削除されたチャットだけでなく、開いているすべてのチャットが消えます。私もいろいろ調べてみましたが、ガベージ コレクションがオブジェクトを収集するのに時間がかかる可能性があるため、チャットを明示的に破棄する方法はないようです。

于 2012-01-26T22:35:34.033 に答える
1

SMACK API を使用している場合は、チャットを終了する必要はありません。ログアウトまたは接続を閉じると、自動的に閉じられます。

于 2011-03-03T12:07:11.570 に答える
0

現在、チャットを閉じることができないため、このバグ レポートに従ってください。しかし、これは報告されており、次のバージョンで修正される可能性があることを認めています。

于 2012-01-31T15:07:47.393 に答える