android - SQLiteOpenHelper 不调用 onCreate

标签 android sqlite oncreate sqliteopenhelper

这是我第一次使用 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/

相关文章:

java - 是否可以升级使用 openorCreatedatabase sqlite 创建的数据库?

java - 如何使用服务器刷新身份验证 token

javascript - 即使 "if"工作,其他工作

android - 在 SQLite 数据库中保存 ArrayList

java - Android sqlite数据库报错SQLiteException no such column

android - 如何执行这些 Android/Eclipse 练习?

android - Android 中的主 Activity 完成 onCreate() 之前是否可以显示一些内容?

java - 谷歌地图未在自定义 Flipview 中初始化

android - 如何获取附近的位置?

android - 如何在android中使用adb恢复出厂设置?