Дело в том что до сегодняшнего дня я для общения с сервером использовал Volley
и каждые определенные время отправлял запрос. Но теперь мне предстоит решить не стандартную задачу. То есть, нужно проверять данные пришли или нет с сервера, отправил собеседник сообщение или нет. Каждые 5 секунд проверять базу, отправлять запросы даже если нет сообщений мне кажется не правильно, да еще где то читал что этот вариант больше жрет аккумулятор.
Вопрос: Есть ли решение, которое меньше использует аккумулятор, и проверяет сервер в реальном времени? Если да, скиньте ссылку на туториалы...
В своём учебном проекте я делаю так:
У меня есть на сервере и клиенте WebSocket'ы
(На сервере веб-сокет от Jetty
, а на клиенте от OkHttp
), они общаются между собой через JSON
(Использую Gson).
На клиенте в веб-сокете каждое новое сообщение добавляется в очередь (Queue
). Есть ещё пару методов, которые возвращают размер очереди и извлекают объект из неё.
Затем в нужном классе при помощи RxJava
и метода interval
, я проверяю кол-во сообщений, и если сообщений больше чем 0, я их все извлекаю.
Возможно реализация выглядит глупа, но работает как надо.
P.S. Сокет создаётся единожды при старте приложения в Service А в нужном классе я подключаюсь к нему.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Понимаю, что вопрос не совсем технический, но интересно мнениеУ меня сейчас около 8 лет разработки на С#
Создал новый проект в андроид студии, но он создаётся с ошибкойВот что пишет в консоли грейдла:
В БД есть две таблички t_statuses и t_operatorsВ первой значения (-1 - BANNED, 0 - OFFLINE, 1 - ONLINE), во второй собственно операторы, статус которых - внешний ключ...
Я сделал выпадающий список меню элемента select и установил определенную категорию со значением value="4"