SQLiteDatabase isReadOnly方法引发异常(几乎总是)

时间:2014-02-10 23:07:17

标签: sqlite android-sqlite

在下面的代码中,我在“isReadOnly”行获得了“数据库未打开”的异常。从逻辑上可以看出它绝对是开放的。事实上我的代码几乎无处不在,我尝试做一个isReadOnly检查我得到一个例外。有没有明显的东西我缺少或者这个方法有错误(我在姜饼上)。

据我所知,这几乎是一个简单的条件语句,锁定了mLock,所以我看不出它是如何导致异常的。

另外,如果我有一个可读的数据库,调用getWritableDatabase()总是没问题,而且不需要先关闭?

if (!db.isOpen()) {
    db = dbHelper.getWritableDatabase();
} else {
    if (db.isReadOnly()) {
        db.close();
        db = dbHelper.getWritableDatabase();
    }
}

1 个答案:

答案 0 :(得分:1)

该死!经过几个月的努力弄清楚,我意识到在发布这个问题后不久发生了什么。

isReadOnly只是一只红鲱鱼,虽然为什么它被吸引到那里我不知道。

基本上,在调试模式下,我注意到我的应用程序正在调用onPause,在我的onpause中,我正在关闭数据库。

我想知道是否有一种方法可以阻止Android在调试时调用onpause .....