У меня есть сервис который с определенным интервалом подключается к серверу и сверяет последний id в БД. Если на сервере id больше, чем у меня в preferences
, то приходит уведомление. Проблема в том, что если пользователь обновит список и получит новые записи, сервис все равно пошлет уведомление. Решил при загрузке данных брать id последнего JSONObject
и сохранять его в preferences
.
//если произошла ошибка при загрузке
//или от сервера пришел null
//то сохранение в БД не будет происходить
//список будет формироваться только из сохраненных
if (json != null || !json.equals("null"))
{
JSONArray messages = new JSONArray(json);
for (int i = 0; i < messages.length(); i++)
{
//берем каждый JSONObject
JSONObject message = messages.getJSONObject(i);
//берем id
String id = message.getString("id");
//сохраняем последний id
//чтобы сервис не показывал ложную инфу
if (i == message.length() - 1)
{
editor.putInt("lastid", Integer.parseInt(id));
editor.commit();
}
:D У вас проверка
if(i == message.length() - 1)
Не проходит, так как вы проверяете не последний JSONObject
, а последний элемент в нем. У вас JSONArray
назван messages
, а не message
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Чем чревато использование entityManager напрямую без участия DAO СлояНекоторые "программисты" не используют DAO и персистят, мержат и селектят напрямую...
Учусь на курсах, тема "Тесты Андроид-проиложений"В самом начале загвоздка