Sqlite возвращает старое значение после перезагрузки в Android

#android #database #sqlite

#Android #База данных #sqlite

Вопрос:

Я сохраняю данные в 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 ");"); 
 

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

1. Можете ли вы поделиться своим кодом?

2. Я добавил приведенный выше код. Пожалуйста, посмотрите.

3. Ну, этот код не очень помогает. Пожалуйста, помните о закрытии вашей базы данных в OnClose() вашей активности.

4. Я создаю и закрываю базу данных в своем собственном классе, я не расширил SQLiteOpenHeler. Я закрываю базу данных после завершения вычисления данных в блоке finally.

5. Вызываете ли вы это dataUsageDataBase.close(), пока ваша активность закрыта или уничтожена.