aSmack MUC: Получить список присоединенных комнат после повторного подключения

Я создаю приложение для чата, и у меня проблема с классом MultiUserChat. Библиотека, которую я использую, загружается из кодов Google.

После потери подключения XMPP я автоматически покидаю все свои присоединенные группы

После переподключения я пытаюсь использовать:

MultiUserChat.getJoinedRooms(xmpp, "[email protected]");

поэтому я могу использовать все свои объединенные комнаты, но получаю исключение NullPointerException.

У кого-нибудь есть идеи, как я могу присоединиться ко всем моим присоединенным комнатам до того, как меня отключили? Я подумал о том, чтобы сохранить все мои соединения в базе данных, а затем повторно присоединиться к ним после их выбора. Любая другая идея?


person user987760    schedule 05.09.2012    source источник
comment
вы должны сохранить их в базе данных и воссоединиться с ними.   -  person Kamal    schedule 05.09.2012
comment
да, я думал об этом, думаю, у меня нет другого выбора... все равно спасибо   -  person user987760    schedule 05.09.2012


Ответы (1)


Камал прав. getJoinedRooms() возвращает только список комнат, если вы подключены и присоединились к некоторым экземплярам MUC. Я также рекомендую хранить JID MUC в базе данных (или просто в памяти) и возвращаться в комнаты после повторного подключения. Мы делаем то же самое на GTalkSMS.

person Flow    schedule 05.09.2012
comment
Есть ли у меня какие-либо другие варианты, кроме сохранения имени комнаты в БД? В моем приложении я хочу показать пользователю все комнаты, к которым он присоединился, но когда я вызываю getJoinedRooms(), я получаю исключение нулевого указателя. - person Jashan PJ; 02.08.2013