2013-07-17 1 views
3

Я пытаюсь сделать приложение для обмена мгновенными сообщениями для Android, я сделал интерфейс для отправки сообщений в мою базу данных, и он отлично работает. Проблема в том, что у меня нет идеи о том, как я могу заставить слушателя получать входящие сообщения из базы данных.Создание приложения для обмена мгновенными сообщениями для Android

Я подумывал использовать Таймер каждые 5 или 10 секунд, и в случае появления новых сообщений для клиента загрузите его. Я попробовал, и если я использую приложение, это работает, но когда я использую тот же код, чтобы уведомлять клиента о новых сообщениях, таймер не работает, и клиент никогда не уведомляется.

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

ответ

5

с использованием таймера будет убивать батарею телефонов с таким интервалом. Вы должны смотреть в использовании Google Cloud Messaging или XMPP уведомить устройство, которое новое сообщение прибыло

0

Используйте вещательный приемник для обработки входящих сообщений Не используйте тянуть соединение через каждые 5 минут или 10 минут он будет потребляющей батареей Использование GCM (Google Cloud Messaging)

1

Как и предыдущие ответы, предлагаемые с использованием таймера, это действительно плохая идея, причина батареи. Google Cloud Messaging/XMPP хорошо звучит, и вы можете использовать широковещательный приемник для обработки входящих сообщений.

проверить этот учебник от приблизительно: Create an Instant Messaging app using Google Cloud Messaging (GCM)

показывает четкую реализацию вышеуказанных методов. он также имеет базовый серверный бэкэнд, написанный в java, работающий в Google App Engine. помогли мне много построить мой проект мессенджера в андроиде.

1

Кроме того, я предлагаю вам также использовать MQTT для реализации обмена мгновенными сообщениями в вашем приложении для Android. Используйте библиотеку Android Eclipse Paho для реализации MQTT. У этого есть свой метод onMessageArrived(), который вызывается всякий раз, когда получено новое сообщение.

Проверка новых сообщений каждые 5-10 секунд является плохой практикой, поскольку она разряжает аккумулятор. MQTT устанавливает низкоуровневое TCP-соединение с MQTTserver, которое идеально подходит для обмена мгновенными сообщениями.

0

Сообщения автоматически поддерживаются API при их получении, который удаляет их с сервера.

И опрос 10 раз означает чтение, обработку и промывку буфера 10 раз, поэтому не похоже, что вы по-прежнему найдете данные из первого опроса в ходе 7-го опроса.