2011-12-18 1 views
0

Я создаю приложение чата Android. Я хочу, чтобы экран чата включал такие функции, как новый экран пользовательского интерфейса для потока чата с другим пользователем. Но я не знаю, как двигаться дальше. Должен ли я использовать сервис или asyntask или есть какой-либо другой способ. Пожалуйста, помогите мне начать.Как создать экран чата в Android?

ответ

0

Нет, если вы используете каждую нить для каждого пользователя, вы создадите много потоков (память и время для создания и очистки ...).

Вы должны использовать услугу для прослушивания при получении сообщения (это простая работа с использованием намерений), и вы можете сделать это в своем основном потоке пользовательского интерфейса.

+0

Спасибо :) Я сделал то же самое. Я сохранил все сообщения в базе данных. Всякий раз, когда я нажимаю на конкретного пользователя в списке пользователей, я бы отправил этот userid в действие chatscreen и на основе идентификатора пользователя он загрузил соответствующие сообщения из базы данных. –

0

Чат закрывается (Сетевое подключение с сервером/другим устройством, с которым пользователь общался), когда активность закрывается, поэтому я не вижу причины использовать serivce/AsyncTask. Просто найдите поток, ожидающий данные из потоков сокетов, и покажите эти данные пользователю после его поступления.

+0

Извините за предоставление частичной информации. Я использую Smack API для создания своего чата. Таким образом, чат не закрывается, пока активность не остановится ОС Android. Кроме того, пользователь может общаться в чате, скажем, A. B отправляет ему сообщение, которое приходит как уведомление. Когда пользователь нажимает на уведомление, будет запущено новое действие, в котором будут показаны все сообщения чата с B. Как с ним работать, если есть 10 пользователей или что-то подобное. GTalk использует жесты для переключения между потоками чата. Но я не понимаю, как они отображают действия пользовательского интерфейса с чат-потоками. –

+0

Я не знаком с API Smack. Но если вы хотите, чтобы сетевое соединение оставалось в живых, даже когда действия были мертвы, используйте Сервис. – Jong

+0

Похоже, есть тег SO для API Smack. Я добавлю его к вашему вопросу. – Jong