用的smack.jar和smackx.jar
监听聊天消息,我在几个界面都监听了,比如主界面,聊天界面
主界面监听可能别的好友发消息过来,聊天界面是监听与当前好友聊天消息
两个貌似有冲突似的,很怪异.下面就来说说吧.
我主界面有个二级listview(展示组和好友列表),有个喇叭监听(用来监听主界面收到的聊天消息)
1.如果进入主界面,直接点击好友进入聊天消息,然后利用spark向该好友发送消息,一切都正常,
2.如果进入主界面,然后用spark向某好友发送了消息,再点击该好友进入聊天界面,再次利用spark发送聊天消息,在聊天界面无法监听到聊天消息到来,只有主界面获取到了.
发现聊天界面的监听器的绑定是执行了的,而且离开聊天界面前,将消息监听器移除掉了.
请教了解smack API的高手.
或者给我个建议,我那样设计是不是合理.有必要两个界面都监听?如果就一个监听是没问题.

解决方案 »

  1.   

    2.如果进入主界面,然后用spark向某好友发送了消息,再点击该好友进入聊天界面,再次利用spark发送聊天消息,在聊天界面无法监听到聊天消息到来,只有主界面获取到了.能不能此时在进入聊天界面后把主界面对当前好友的的监听取消了
    或者如果不能取消的话,把主界面监听到的消息,发现是此好友的,就把消息转发到当前的聊天界面。