2013-02-15 6 views
0

Я новичок в Android. Я хотел создать клиент чата XMPP вместе с push-уведомлениями. Я установил openfire, и сервер готов к тестированию на моей локальной машине.Как создать клиент XMPP Chat в Android с Openfire?

На данный момент то, что я делаю 1. Создание соединения XMPP в ASYNC задаче 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, Манипуляторы Создание службы радиоприемников

Я не уверен, какой метод следует выбрать. Можете ли вы, ребята, предложить оптимальный метод и указатели на примере этого, было бы здорово?

Благодаря Четан

ответ

1

Как вы сказали, АСИНХРОННЫЙ следует использовать только для небольших мероприятий по продолжительности. Предполагая, что вы используете какую-то версию Asmack в Android, соединение должно быть в отдельном потоке от активности (как сетевой процесс), поэтому вам нужно использовать новый поток/runnable для подключения к серверу XMPP. После этого Asmack использует свои собственные потоки, но вы не должны беспокоиться об этом. С помощью этого шаблона вы можете создать простое приложение, которое в любое время может быть убито андроидом. Если вы хотите что-то долгое время сопротивляться, вы должны использовать сервис для части XMPP

0

Используйте AsynTask для создания соединения. В андроиде вся сетевая задача должна быть другой, чем поток пользовательского интерфейса, поэтому вызывайте ее из doInBackground() метод. Если вы хотите долгое время поддерживать соединение, включите его.

Смежные вопросы