我有一个应用程序,我现在没有使用数据库。现在我将更新我的应用程序,这个应用程序包含一个数据库。我很好奇。这个方法将调用数据库中更新的手机{{ 1}}或onCreate
?
答案 0 :(得分:2)
如果db不存在,第一次运行onCreate()方法。
如果db存在并且您当前的db版本高于安装版本,则onUpgrade()将运行,您应该检查onUpgrade方法中的版本并执行您想要的操作。
这是dbHandler.java类的一个示例。
package com.app.util;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Milad
*/
public class DBHandler extends SQLiteOpenHelper {
private static final String DB_NAME = "YourDbName";
private static final int DB_VERSION = 1;
public DBHandler(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
//Create firstTable
db.execSQL("CREATE TABLE TEST ( _id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion >2) {
db.execSQL("DROP TABLE IF EXISTS TEST");
onCreate(db);
}
}
}
答案 1 :(得分:1)
首次创建数据库时,将调用onCreate()
方法。如果升级数据库版本,则将调用该时间onUpgrade()
方法。