@sulik93
Начал изучать Java. Продолжаю изучать Java.

Как получить количество новых данных?

Всем привет!
Если кто сталкивался с задачей вычисления новых данных, подскажите пожалуйста.
В разных месенжерах когда приходят новые данные в боковом меню отображается количество этих новых данных, а когда мы переходим на этот пункт - то этот кружок исчезает.
Так вот как правильно реализовать версионность этих данных?
Загвоздка ещё в том, что при переходе в конкретный пункт меню открывается форма со списком и каждый элемент списка может содержать свой кружок с количеством новых данных.
Подскажите, пожалуйста, кто сталкивался с такой проблемой. Как у вас это реализованно ?
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 2
gadfi
@gadfi
https://gamega.org
все зависит от вашей архитектуры, единого рецепта нет.
Например сообщению добавить булевое поле прочитано и с помощью CursorLoader показывать в этом кружочке количество непрочитанных сообщений.
если нужна синхронизация между разными устройствами например клиент установлен на планшет и телефон, то это удобно сделать с помощью gcm

это первое что приходит в голову, возможно для вашей архитектуры оптимально другое решение
Ответ написан
@sulik93 Автор вопроса
Начал изучать Java. Продолжаю изучать Java.
Реализовал следующим способом:
С сервера получаю json вида:
{
"data_array_1": [
{
"id":4,
"count":2
},
{
"id":5,
"count":5
},
{
"id":6,
"count":3
}
],
"data_array_1":[
{
"id":54,
"count":3
},
{
"id":55,
"count":5
},
{
"id":56,
"count":3
}
],

Записываю эти данные в SQLite.
После записи получаю данные для отображения вызовом getSupportLoaderManager().getLoader(0).forceLoad()
Данные я обновляю через каждые 2 часа и при условии, что придет код ответа 200.
Долее я перехожу на конкретный список. Например data_array_1.
Каждый элемент этого списка содержит id, по которому я нахожу количество из БД, и вывожу количество в элемент списка, если количество != 0. При этом так же обновляю количество новых данных в боковом меню.
Если кому нужно, объясню подробнее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы