Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中重新启动后Sqlite返回旧值_Android_Database_Sqlite - Fatal编程技术网

在android中重新启动后Sqlite返回旧值

在android中重新启动后Sqlite返回旧值,android,database,sqlite,Android,Database,Sqlite,我将数据存储在我的android设备的sqlite表中,其中当前月份是主键。然后我重新启动,并定期更新数据,从sqlite检索数据,它显示的是准确的数字。但在所有后续的重新启动之后,它显示的是第一次重新启动时的初始值,而不是最后一次更新的值。在存储初始值的地方,我找不到sqlite是否缓存该值。在过去的两天里,这个问题一直困扰着我。任何人都曾面临过这个问题。 这是我的代码。表的代码是: SQLiteDatabase dataUsageDataBase = null; private final

我将数据存储在我的android设备的sqlite表中,其中当前月份是主键。然后我重新启动,并定期更新数据,从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+");"); 

你能分享你的代码吗?我已经在上面添加了代码。请看一看。这个代码没有多大帮助。请记住在活动的onClose()中关闭数据库。我在自己的类中创建并关闭数据库,我没有扩展SQLiteOpenHeler。在finally块中的数据计算结束后,我将关闭数据库。在活动关闭或销毁时,是否调用此dataUsageDataBase.close()。