0

我是安卓新手。我想创建一个 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, Handlers Create a Service Broadcast receivers

我不确定我应该选择哪种方法。你们能建议最佳方法和指向该示例的指针吗?

谢谢车坦

4

2 回答 2

1

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

于 2013-04-27T11:16:12.497 回答
0

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

于 2016-08-15T05:27:13.160 回答