Я думаю, что лучший способ - это зависеть от ChatManager
, чтобы управлять своими чатами, отправлять и получать чаты, что я делаю в моем приложении:
// Assume we've created a Connection name "connection".
ChatManager chatmanager = connection.getChatManager();
Chat newChat = chatmanager.createChat("jsmith@jivesoftware.com",
new MessageListener() {
public void processMessage(Chat chat, Message message) {
System.out.println("Received message: " + message);
}
});
try {
newChat.sendMessage("Howdy!");
}
catch (XMPPException e) {
System.out.println("Error Delivering block");
}
для получения сообщения, которое вы указали
// Assume a MessageListener we've setup with a chat.
public void processMessage(Chat chat, Message message) {
// Send back the same text the other user sent us.
chat.sendMessage(message.getBody());
}
для прослушивания других входящих чатов
// Assume we've created a Connection name "connection".
ChatManager chatmanager = connection.getChatManager().addChatListener(
new ChatManagerListener() {
@Override
public void chatCreated(Chat chat, boolean createdLocally)
{
if (!createdLocally)
chat.addMessageListener(new MyNewMessageListener());;
}
});
это сделает его чище, чем фильтры пакетов
, чтобы избежать регистрации нескольких слушателей событий, зарегистрируйте слушателя в onResume()
метод затем отмените регистрацию в onPause()