使用Smack库打开XMPP聊天后,是否有必要(甚至可能)明确关闭聊天?
答案 0 :(得分:3)
你只需删除自己的引用,它最终就会消失。它仅由ChatManager中的弱引用持有,因此最终将获得GC。
如果你不希望在Chat类等待GC的时候再收到任何聊天消息,你应该删除你的听众。
答案 1 :(得分: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>
答案 2 :(得分:1)
如果您使用SMACK API,则无需关闭聊天。当您注销或关闭连接时,它将自动关闭。
答案 3 :(得分:1)
我有一个侧面板,显示所有打开的聊天记录。它允许用户删除任何打开聊天。如果关闭连接,则所有打开的聊天消失,而不仅仅是删除的聊天。我也开玩笑了,似乎没有办法明确地破坏聊天,因为垃圾收集可能需要很长时间来收集对象。
答案 4 :(得分:0)
请关注此bug report,因为目前无法关闭聊天。 但是,由于已经报告并承认它可以在下一版本中修复。