android中对于数据库的操作都是通过SQLiteOpenHelper帮助类实现的。ContentProvider也是借助SQLiteOpenHelper,自定义SQLiteOpenHelper,必需要实现onCreate(), onUpgrade(),可以选择实现onOpen。 当用户调用getWritableDatabase或是getReadableDatabase时。
1. 如果数据库不存在,就会调用onCreat(),不会调用onUpgrade();
2. 如果数据库存在,但是版本不一样就调用onUpgrade(),不会调用onCreate();
3. 如果数据库存在,版本一样不会调用onCreate(),onUpgrade();
4. 当调用getWritableDatabase,getReadableDatabase如果数据库没有打开,就调用onOpen方法,如果打开了就不调onOPen;
5. 数据库的表的创建一般都在SQLiteOpenHelper的onCreat()中,表字段升级,都会在onUpgrade()处理。