来自SQLiteOpenHelper的VACUUM sqlite数据库

时间:2017-07-31 09:35:08

标签: android sqlite vacuum

我的应用程序的数据库不断增长,我想执行一个VACUUM来检索一些丢失的空间。据我所知,如果有其他交易,VACUUM不会运行。

我的问题是:如何从我的SQLiteOpenHelper运行命令?就像db.execSQL("VACUUM")工作一样?但是如何在执行此操作时获得某些进展,以便我可以使用加载对话框来阻止UI?

1 个答案:

答案 0 :(得分:1)

您可以像任何其他SQL命令一样运行VACUUM; execSQL()可以使用。

但是,没有跟踪进度的机制。

SQLite会自动重用免费页面,因此VACUUM不太可能有所帮助。 (仅当您删除了大量数据时才有用,并且知道您不会再次插入新数据。)