Как создать клиент XMPP Chat в Android с Openfire?
Я новичок в Android. Я хотел создать чат-клиент XMPP вместе с push-уведомлениями. Я установил 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
}
});
}
}
}
Но я совершенно запутался, если я делаю это правильно. Я где-то читал на stackru, что ASYNC следует использовать только для небольших операций, и мое соединение может быть отсрочено здесь.
Я также нашел их в качестве вероятных решений: Runnable, Обработчики Создать приемники службы вещания
Я не уверен, какой метод я должен выбрать. Не могли бы вы, ребята, предложить оптимальный метод и указатели на пример того, что было бы здорово?
Спасибо четан
2 ответа
Как вы сказали, ASYNC следует использовать только для небольшой активности. Предполагая, что вы используете какую-то версию Asmack в Android, соединение должно быть в отдельном потоке от действия (как сетевой процесс), поэтому вы должны использовать новый поток /runnable для соединения с сервером XMPP. После этого Asmack использует свои собственные потоки, но вам не стоит об этом беспокоиться. С помощью этого шаблона вы можете создать простое приложение, которое может быть убито в любое время Android. Если вы хотите, чтобы что-то долго сопротивлялось, вы должны использовать службу для части XMPP
Используйте AsynTask для создания соединения. В android все задачи, связанные с сетью, должны отличаться от потока пользовательского интерфейса, поэтому вызовите его из метода doInBackground(). Если вы хотите сохранить соединение в течение длительного времени, включите его в эксплуатацию.