如何在启动应用程序时从Android中删除在SQLite数据库中重新创建表?

时间:2012-08-13 22:31:03

标签: android sqlite

我正在构建一个包含两个使用SQLiteOpenHelper内部创建的表的数据库的应用程序。当应用程序运行时,它会接收一些数据并将其保存到表中。我想要的是清除数据应用程序启动时的表格?

我查看了这篇文章How can I clear an SQLite database each time I start my application?,其中不清楚如何使用应用程序。

2 个答案:

答案 0 :(得分:2)

如果您传递构造函数null name

SQLiteOpenHelper可以创建内存中数据库。可能这就是你要找的东西。

例如:

SQLiteOpenHelper sqloh = new SQLiteOpenHelper(context, null, null, 1);
SQLiteDatabase sqldb = sqloh.getWritableDatabase();

将创建一个内存中的数据库。

答案 1 :(得分:1)

SqliteDatabase使用openOrCreate(...)方法打开数据库(如果存在),并在数据库不存在时打开它。请参阅docs,您可以删除在执行任何数据库调用之前创建的数据库文件,以便每次都创建一个新文件。

这个SO问题给出了文件的位置:Location of sqlite database on the device

其他路由只是在应用程序启动时通过执行sqlite查询来删除表中的数据:

DELETE FROM your_table

我唯一的想法是,如果您要在每次应用程序启动时删除它,您真的需要一个数据库。如果您没有更新数据,那么为什么不只是“缓存”带有数据的json文件。 GSON库非常适合使用json并使用非常少的代码将其转换为java对象,与使用sqlite相比,代码更少。但是这个建议来自于没有全面了解你想要完成的事情。然后,您只需在应用程序启动时删除json文件而不是db文件。