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

如果您使用 SMACK API,则无需关闭聊天。当您注销或关闭连接时,它将自动关闭。

于 2011-03-03T12:07:11.570 回答
1

我有一个侧面板,显示所有打开的聊天。它允许用户删除任何打开的聊天。如果您关闭连接,那么所有打开的聊天都会消失,而不仅仅是被删除的聊天。我也四处寻找,似乎没有办法明确地破坏聊天,因为垃圾收集可能需要很长时间才能收集对象。

于 2012-01-26T22:35:34.033 回答
0

请关注此错误报告,因为目前无法关闭聊天。但由于这已被报告并承认它可以在下一个版本中修复。

于 2012-01-31T15:07:47.393 回答