在android中集成smack

在android中集成smack,android,multithreading,chat,smack,Android,Multithreading,Chat,Smack,我正在尝试将smack API集成到android中以制作聊天应用程序,到目前为止,我已经能够使用登录、注册、烘焙、vcard、状态、订阅等功能。现在我想将它们结合起来制作聊天应用程序,但我对如何构造应用程序感到困惑 所需功能 显示订阅用户列表及其状态 更新邮件计数并在收到邮件时通知 当用户在线时,向收件人显示消息 即使在应用程序关闭时也接收消息 可能的解决方案 现在我有一些选择,比如使用一个服务来处理smack调用,但据我所知,该服务在主线程上运行,可以阻止它 当应用程序启动时实例化sm

我正在尝试将smack API集成到android中以制作聊天应用程序,到目前为止,我已经能够使用登录、注册、烘焙、vcard、状态、订阅等功能。现在我想将它们结合起来制作聊天应用程序,但我对如何构造应用程序感到困惑

所需功能

  • 显示订阅用户列表及其状态
  • 更新邮件计数并在收到邮件时通知
  • 当用户在线时,向收件人显示消息
  • 即使在应用程序关闭时也接收消息
可能的解决方案

  • 现在我有一些选择,比如使用一个服务来处理smack调用,但据我所知,该服务在主线程上运行,可以阻止它

  • 当应用程序启动时实例化smack API,当应用程序停止时实例化smack API,但当应用程序未激活时不会收到消息



因此,如果任何人可以给出任何提示或示例来构造聊天应用程序,即使用服务和服务上的单独线程或异步任务,那么您需要使用服务来处理smack conexion。为了避免出现ANR对话框,所有网络操作都必须在另一个线程中运行。为此,您可以使用
AsyncTask
(例如用于登录操作)或只启动一个新线程:

new Thread(new Runnable() {
        public void run() { 
          //Your code here
          }
    }).start();