您的位置:首页 > 移动开发 > Android开发

Android-getWritableDatabase()与getReadableDatabase()

2015-09-06 10:40 218 查看
getWritableDatabase()与getReadableDatabase()源码是一样的,唯一的区别是:在磁盘满的时候,此时数据库只允许进行读操作。getWritableDatabase()与getReadableDatabase()源码分别是

public SQLiteDatabase getWritableDatabase() {

        synchronized (this) {

            return getDatabaseLocked(true);

        }

    }

public SQLiteDatabase getReadableDatabase() {

        synchronized (this) {

            return getDatabaseLocked(false);

        }

    }

但是getReadableDatabase()先以读写方式打开,若失败,则只读

在getDatabaseLocked(boolean writable)会分别调用 

public void onConfigure(SQLiteDatabase db) {}

public abstract void onCreate(SQLiteDatabase db);//创建

public abstract void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion);或 public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        throw new SQLiteException("Can't downgrade database from version " +

                oldVersion + " to " + newVersion);//升级或降级

    }

 public void onOpen(SQLiteDatabase db) {}//在数据库被打开后调用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: