Я храню данные в sqlite на моем устройстве Android в таблице, где текущий месяц является первичным ключом. Затем я перезагружаюсь и продолжаю регулярно обновлять данные и извлекать данные из sqlite, и это показывает мне точную цифру. Но после всех последующих перезагрузок, он показывает мне начальное значение при первой перезагрузке, а не показывает последнее обновленное значение. Не могу найти, где хранится начальное значение, Клюит ли sqlite значение. Я застрял с этой проблемой в течение последних двух дней. Кто-нибудь когда-либо сталкивался с этой проблемой.
Вот мой код. Код для таблицы:
SQLiteDatabase dataUsageDataBase = null;
private final String TOTAL_DATA_TABLE ="DeviceData";
dataUsageDataBase.execSQL("CREATE TABLE IF NOT EXISTS "+ TOTAL_DATA_TABLE+ "( presentMonth INT , Data1 INT(12),Data2 INT(12),Data3 INT(12),Data4 INT(12),PRIMARY KEY(presentMonth) );
todayMonth - число, представляющее текущий месяц (от 0 до 11)
Курсор для извлечения старого значения:
Cursor totalData = dataUsageDataBase.rawQuery("SELECT * FROM " + TOTAL_DATA_TABLE + " WHERE presentMonth = "+todayMonth +"", null);
// Некоторые вычисления производятся на данных после извлечения данных.
Затем удаляем выходящие данные и вставляем новую запись
dataUsageDataBase.delete(TOTAL_DATA_TABLE, " presentMonth = " + todayMonth+"" , null);
dataUsageDataBase.execSQL("INSERT INTO "+ TOTAL_DATA_TABLE+ " Values( "+todayMonth + ","+Data1+ "," +Data2 + ","+ Data3 +","+Data4+");");