SQliteOpenHelper是一个辅助类,主要用来管理数据库的创建和版本的管理。说onCreate的使用时机,就不能孤立另外的2个方法:onUpgrade,onOpen. 参照sdk中的demo(记事本),大概是以下的使用场景: onCreate(SQLiteDatabase):在数据库第一次生产的时候会调用这个方法,一般我们在这个方法里边生产数据库表。 onUpgrade(SQLiteDatabase,int,int):当数据库需要升级的时候,Android系统会主动的调用这个方法。一般我们在这个方法里边删除数据库表,并建立新的数据库表,当然是否还需要做其他的操作,完全取决于应用程序的需求。 onOpen(SQLiteDatabase):这是当打开数据库时的回调函数,一般也不会用到。 这个很容易理解,在数据库第一次被创建时调用onCreate函数,参看帮助文档对这个函数的说明:Called when the database is created for the first time.也就是说在第一次创建数据库时调用,而数据库被创建出来后这个函数就没有用了,系统将不会再调用它,如果你想给数据库中加入一个表,那么可以使用onUPgrade函数,或者像你所做的那样,手动来调用onCreate函数。
Android SQLiteOpenHelper 重复执行OnCreate()说明: android中首次调用getWritableDatabase或getReadableDatabase执行OnCreate()方法,当数据库中不存在该表时执行创建操作建议: 建议创建表时在sql中添加判断语句 "CREATE TABLE IF NOT EX