通常,对于WinForm或Web App,我通过RDBMS或单独的安装过程创建数据库和表。但是,我还没有在Android中看到任何类似的东西。我见过的所有示例都将数据库创建脚本嵌入到this等活动中。
我现在能想到的最好的事情是从数据访问构造函数调用一个方法来检查数据库是否已安装 - 如果没有 - 安装它。但是,这对我来说似乎是一个很大的开销。
执行android数据库安装然后忘记它的最简洁方法是什么?
答案 0 :(得分:1)
使用SQLLiteOpenHelper(http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html)时,只有在数据库不存在时才会调用onCreate方法。引入新版本的数据库时将调用onUpgrade。 如果数据库已经存在,并且没有发生版本升级,则不会执行这些方法。
您的活动无需执行if-else检查。
private static class DatabaseHelper extends SQLiteOpenHelper
{
DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion)
{
Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion);
db.execSQL(DATABASE_UPGRADE);
}
}