我必须在我的android应用程序中创建近5-6个表。创建SQLite数据库和5-6个表的最佳位置是什么?我可以在初始活动启动时编写所有这些逻辑(使用SQLite打开助手方法),但如果我这样做,它将在每次初始活动启动时被调用。这意味着这些数据库和表的创建逻辑将在每次应用程序launches.Can时执行,任何主体都会告诉最佳实践这样做。
发布于 2012-06-04 22:43:46
如果您编写一个类来扩展SQLiteOpenHelper并在onCreate方法中创建表,那么它将只执行一次。仅当您从设备中完全删除数据/应用程序时,帮助器才会重新创建数据。
来自第一次创建数据库时调用的developer.android.com:。这是创建表和初始表填充的地方。
给你更多的信息。在用于扩展SQLiteOpenHelper的类的构造函数中,调用超级构造函数,它接受一些参数。其中之一是数据库版本。
如果传递给超级构造函数的这个db_version与最后传递的那个不同,就会调用onUpgrade方法,在onUpgrade()方法中可以调用onCreate()
所以:
是创建/续订/删除数据库的方法
发布于 2012-06-04 22:43:27
您可以在主活动中创建数据库和表
但在创建数据库之前,您可以检查
if(exits())
{
// do not create
}
else
{
// create here
}
发布于 2012-06-04 22:43:48
就个人而言,我使用选项:CREATE TABLE IF NOT EXISTS
。
所以这个打开的帮助器有这个参数:
private static final int VERSION_BDD = 1;
我认为openHelper不会在每次启动时重新创建每个表。
https://stackoverflow.com/questions/10883110
复制相似问题