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

如何使用Openfire在Android中创建XMPP聊天客户端?,android,xmpp,openfire,smack,Android,Xmpp,Openfire,Smack,我是Android的新手。我想创建一个带有推送通知的XMPP聊天客户端。我已经安装了openfire,服务器已经准备好在本地机器上进行测试 在这一点上,我正在做什么 1.在异步任务中创建XMPP连接 2.onPost创建聊天管理器 protected void onPostExecute(final Boolean success) { if (success) { if (connection != null) { cha

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

在这一点上,我正在做什么 1.在异步任务中创建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上的某个地方读到,异步应该只用于小持续时间的活动,我的连接可能在这里超时

我还发现这些是可能的解决方案: 可运行的,处理程序 创建服务 广播接收机

我不确定我应该选择哪种方法。你们能推荐一个最佳的方法和指向这个例子的指针吗

谢谢
Chetan

正如您所说,ASYNC应该只用于小持续时间的活动。 假设您在Android中使用某个版本的Asmack,那么连接必须位于活动的单独线程中(作为一个网络进程),因此您必须使用新的线程/runnable来连接到XMPP服务器。Asmack在这之后使用它自己的线程,但是您不应该担心它。 有了这个模板,你可以创建一个简单的应用程序,这个应用程序随时可能被android杀死。
如果你想让某个东西抵抗长时间的攻击,你应该为XMPP部件使用一个服务

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