Android SQLite在应用中数据保存查询,但是拷贝的xxx.db没有数据或没有更新,.db |
您所在的位置:网站首页 › 手机db后缀是什么文件 › Android SQLite在应用中数据保存查询,但是拷贝的xxx.db没有数据或没有更新,.db |
Android SQLite在应用中数据保存能查询,但是拷贝的xxx.db没有数据或没有更新问题,.db_wal和.db_shm文件是什么 文章目录 问题原因解决方法SQLite的.db_wal和.db_shm文件 问题拷贝ROOM数据库data/data/com.xxx.xxx/databases/xxx.db到Windows下,使用DB browser for SQLite工具打开,发现数据没有更新。但是debug应用,使用ROOM保存数据,保存成功并且能查询到数据,但是拷贝出来的xxx.db就是没有数据。 原因数据库没有关闭!!!能查询到数据的原因是内容在磁盘缓存里,还是可以查到的,但是没有写到xxx.db文件中。经过测试重新开机也不会自动写到xxx.db文件中,要在代码中close(); 如下图关闭数据不关闭数据库,应用退出也没关闭数据库 如下图关闭数据后,这是拷贝出来的数据库,就有数据了 在应用退出的适当时机,调用数据库的close()方法,如在MainActivity的onDestroy()中close()。当你看到.db_wal和.db_shm文件文件出现时,说明数据库正在使用或者没有关闭。 override fun onDestroy() { super.onDestroy() mySQLiteOpenHelper.close() //myRoomDb.close() } SQLite的.db_wal和.db_shm文件这两个文件是SQLite原子操作的缓存,当更新一些记录时,先写入.db_wal和.db_shm文件。然后,在关闭数据库或缓存到一定大小时才会写到.db文件中。这是个人理解,请自行深入学习。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |