这是我第一次使用 SQLiteOpenHelper(或 Android 上的数据库)。当我得到一个可写数据库时,我想知道为什么没有在类的每个新实例上调用 onCreate。我做错了什么吗?
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "MyDatabase.db";
private static final int DATABASE_VERSION = 1;
private String PrSQLcmd = "";
public DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("CREATE TABLE IF NOT EXISTS Contact(Firstname TEXT, LastName TEXT");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
最佳答案
在 SQLiteOpenHelper 中,'onCreate' 的含义与它在 Activity 中的含义不同。在这里,'onCreate' 只被调用一次,这是您第一次创建数据库。下次运行该应用程序时,数据库已经存在,因此它不会调用“onCreate”。您的对象级初始化应该在构造函数中完成,而不是在“onCreate”中完成
要查看“onCreate”被调用,请手动删除数据库文件,或简单地卸载应用程序。
关于android - SQLiteOpenHelper 不调用 onCreate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7164303/