getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例。
getReadableDatabase()并不是以只读方式打开数据库,而是先执行getWritableDatabase(),失败的情况下才以只读方式打开数据库。
getWritableDatabase()方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,getWritableDatabase()打开
数据库就会出错。
getReadableDatabase()方法先以读写方式打开数据库,倘若数据库的磁盘空间满了,打开失败,当打开失败后会继续尝试以只读方式打开数据库。
getWritableDatabase()会调用openOrCreateDatabase打开或者创建数据库,然后检查数据库的版本,如果数据库刚创建,则调用继承自SQLiteDatabase的类的onCreate做相应初始化;如果发现应用已经升级了数据库版本,则