SQLiteOpenHelper no puede llamar a onCreate?
Estoy tratando de crear una base de datos local en un teléfono Android usandosqlite
.
Tengo una clase auxiliar, que se muestra a continuación, que se utiliza para crear la base de datos y proporcionar la "ayuda".
Quiero crear un objeto de esta clase en la parte principal de mi código y crear la base de datos y las tablas allí también.
El problema
Cuando creo un objeto de la clase, no parece estar llamando a laonCreate
método en el ayudante. Pensé que esto debía suceder. Pensé queonCreate
fue básicamente un constructor para la clase. (Creo que estoy equivocado)
onCreate
método? ¿O cómo consigo que cree la base de datos y las tablas donde estoy creando el objeto de la clase? ¿Cuál sería una mejor manera de hacer esto, si este no es un buen enfoque?public class SmartDBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "smart_lite_db.db";
private static final int DATABASE_VERSION = 2;
private static final String NOTIFY_TABLE_NAME = "user_notify_data";
private static final String HR_TABLE_NAME = "user_hr_data";
private static final String NOTIFY_TABLE_CREATE =
"CREATE TABLE " + NOTIFY_TABLE_NAME +
" (counter INTEGER PRIMARY KEY, " +
"userresponse INTEGER, " +
"notifytime INTEGER);";
private static final String DATA_TABLE_CREATE =
"CREATE TABLE " + HR_TABLE_NAME +
" (counter INTEGER PRIMARY KEY, " +
"hr INTEGER, " +
"act INTEGER, " +
"timestamp INTEGER);";
public SmartDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
Log.v("smartdbhelper", "before creation");
db.execSQL(NOTIFY_TABLE_CREATE);
Log.v("smartdbhelper", "middle creation");
db.execSQL(DATA_TABLE_CREATE);
Log.v("smartdbhelper", "after creation");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
public class SmartApp extends Activity implements OnSharedPreferenceChangeListener {
private SmartDBHelper dBHelper;
public void onCreate(Bundle savedInstanceState) {
//where i am wanting to create the database and tables
dBHelper = new SmartDBHelper(getContext());
}
}