更新:db-wal文件是如此之大。是什么原因以及如何限制sqlite日志文件大小?
我正在使用SQLiteOpenHelper。当onUpgrade发生时,我正在删除我的应用程序存在的每个表。在机器人上,当我使用设置应用程序查看应用程序数据大小时,您可以看到数据大小减少了应有的程度。但是使用HTC Thunderbolt,数据大小不会减少。更糟糕的是,当您再次开始使用我的应用程序时,Thunderbolt的数据库会继续增长。当我升级数据库版本时,似乎数据库将始终在Thunderbolt上增长。
我已经验证我只使用了一个具有相同名称的数据库,并且在删除表之前数据库中有数据。我期望在Thunderbolt上看到与在机器人上做同样的行为。有什么方法可以编程方式清除设备的所有数据吗?这不是理想的,但它会比Thunderbolt的数据大小总是增长更好。
答案 0 :(得分:1)
如果您使用的是SQLiteOpenHelper,则需要在应用程序结束时调用close。 api文档提到您不需要在由它打开的所有SQLiteDatabase实例上调用close,但是您仍然必须在Helper上调用close,因为它会缓存并跟踪SQLiteDatabase的所有打开实例。如果不调用close,wal文件将继续为getWriteableDatabase和getReadableDatabase返回的每个不同实例增长。