如何使用Openfire在Android中创建XMPP聊天客户端?

时间:2013-02-15 10:57:59

标签: android xmpp openfire smack

我是Android的新手。我想创建一个XMPP聊天客户端以及推送通知。我已安装openfire,服务器已准备好在我的本地计算机上进行测试。

此时我正在做什么 1.在ASYNC任务中创建XMPP连接 2. onPost创建聊天管理器

protected void onPostExecute(final Boolean success) {
        if (success) {
            if (connection != null) {
                chatManager = connection.getChatManager();
                Chat newChat = chatManager.createChat("shobhit",
                         new MessageListener() {
                            public void processMessage(Chat chat, Message message) {
//Do something
                            }
                        });
            }
        }
    }

但如果我这样做是正确的,我会感到很困惑。我在stackoverflow上的某处读到,ASYNC只能用于小持续时间的活动,我的连接可以在这里超时。

我也发现这些是可能的解决方案: Runnable,处理程序 创建服务 广播接收器

我不确定应该选择哪种方法。你们能否提出最佳方法,并指出这个例子的指针会很棒?

由于 阿赫亚

2 个答案:

答案 0 :(得分:1)

正如您所说,ASYNC应仅用于小型活动。 假设您在Android中使用某种版本的Asmack,则连接必须与活动位于一个单独的线程中(作为网络进程),因此您必须使用新线程/ runnable连接到XMPP服务器。之后Asmack使用自己的线程,但你不应该担心它。 使用此模板,您可以创建可以随时被Android杀死的简单应用程序。 如果你想要长时间抵制某些东西,你应该为XMPP部分使用服务

答案 1 :(得分:0)

使用AsynTask创建连接,在android中所有与网络相关的任务应该是与UI线程不同的线程,因此从doInBackground()方法调用它。如果您想长时间保持连接,请将其投入使用。

相关问题