SQLiteOpenHelper не вызывает onCreate - PullRequest
2 голосов
/ 23 августа 2011

Это первый раз, когда я использовал 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

}

}

1 Ответ

13 голосов
/ 23 августа 2011

В SQLiteOpenHelper значение «onCreate» отличается от значения в действии.Здесь 'onCreate' вызывается только один раз, это первый раз, когда вы создаете базу данных.В следующий раз, когда вы запустите приложение, база данных уже существует, поэтому она не будет вызывать 'onCreate'.Инициализация уровня вашего объекта должна выполняться в конструкторе, а не в onCreate

Чтобы увидеть вызываемый onCreate, либо удалите файл db вручную, либо просто удалите приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...