asmack 中的 MessageListener 以集成无法绑定到任何小部件的 facebook 聊天

Posted

技术标签:

【中文标题】asmack 中的 MessageListener 以集成无法绑定到任何小部件的 facebook 聊天【英文标题】:MessageListener in asmack to integrate facebook chat not able to bind to any widget 【发布时间】:2013-02-13 11:21:40 【问题描述】:

我在一个 android 应用程序中工作,我想在其中集成 facebook 聊天。为此,我正在使用 asmack-jse-buddycloud-2010.12.11。我能够发送和接收聊天。但我无法将它绑定到任何视图(Toast、ListView 等)。收到的消息在 MessageListener 中,我无法在任何视图中绑定它。

请查看我的代码:

   public void SentFBMessage(String message) 

    Chat newChat = mObjChatManager.createNewChat(
                    "-100001303337607@chat.facebook.com", new MessageListener() 
        public void processMessage(Chat chat, Message message) 
            Log.e("Received message: ", message.getBody());
               **Toast.makeText(getApplicationContext(),message.getBody(),Toast.LENGTH_LONG).show();**
        );
    try 
            newChat.sendMessage(message);
             catch (XMPPException e) 
                System.out.println("Error Delivering block");
            
        

【问题讨论】:

【参考方案1】:

基本上,您的问题是您每次都在制作新的 MessageListener。将监听器放在一个自己的类中,每次都添加它。

connection.getChatManager().addChatListener(new ChatManagerListener() 
    @Override
    public void chatCreated(Chat chat, boolean b) 
        chat.addMessageListener(messageListener);
    
);

【讨论】:

以上是关于asmack 中的 MessageListener 以集成无法绑定到任何小部件的 facebook 聊天的主要内容,如果未能解决你的问题,请参考以下文章

asmack + android + 聊天应用程序

MessageListener onMessage方法中的Spring RabbitMQ断点

使用 asmack 共享位置

asmack 没有收到多用户聊天请求

自定义 MessageListener 到 DefaultMessageListenerContainer 被覆盖

如何发送消息?安卓,asmack,openfire