Страницы

Поиск по вопросам

воскресенье, 26 января 2020 г.

Listener Android

#android


Интерес располагается к схеме работы слушателя через сетевое соединение для какой
нибудь базы данных, например, имеются службы в которых всё это реализовывается,
к примеру в вашем телефоне приложение вконтакте, viber, whatsapp и подобные. Происходят
моментальные уведомления об сообщениях и моментальный вывод. 
То есть, по большому счёту приложение слушает базу данных, таблицу, ту что нужно,
подсчитывает кол-во сообщений и т.д Непосредственно через API.
Всё это, происходит в реальном времени.
Кто может мне подсказать в каком направлении идти, создавать отдельный поток и рекурсивно
проверять базу? Или сделать какой нибудь хитрый слушатель, правда я ещё не уверен в
этом, хотя рекурсивный метод дорого стоит, кто сталкивался с подобным на практике?    


Ответы

Ответ 1



Здесь есть 2 варианта: Через Google Cloud Messaging механизм описанный @KoVadim. Кроме очевидных плюсов описанных @KoVadim метод имеет один существенный минус - вы должны иметь доступ к серверу для реализации доступа из сервера к облаку Google, что не всегда возможно. Более кондовый способ: "дерганье" собственно самого сервера непосредственно из вашей аппы. Механизм обычно устраивается так: а) Фоновый поток/сервис, который с заданным интервалом "дергает" сервер и результаты пишет в локальную БД б) Над БД устраивается ContentProvider, далее сверх ContentProvider'а уже можно устроить CursorAdapter с соответствующим LoaderManager в) Завершающий штрих CursorAdapter может иметь слушателя ContentObserver, который вы и будете ловить на предмет изменений в локальной базе, следовательно и на сервере. P.S. Это вам не ПЖИВ-ПЖИВ орать на площадях :)

Комментариев нет:

Отправить комментарий