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)

Entonces, ¿por qué no llama alonCreate 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());
   }
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta