在下面的代码中,我在“isReadOnly”行获得了“数据库未打开”的异常。从逻辑上可以看出它绝对是开放的。事实上我的代码几乎无处不在,我尝试做一个isReadOnly检查我得到一个例外。有没有明显的东西我缺少或者这个方法有错误(我在姜饼上)。
据我所知,这几乎是一个简单的条件语句,锁定了mLock,所以我看不出它是如何导致异常的。
另外,如果我有一个可读的数据库,调用getWritableDatabase()总是没问题,而且不需要先关闭?
if (!db.isOpen()) {
db = dbHelper.getWritableDatabase();
} else {
if (db.isReadOnly()) {
db.close();
db = dbHelper.getWritableDatabase();
}
}
答案 0 :(得分:1)
该死!经过几个月的努力弄清楚,我意识到在发布这个问题后不久发生了什么。
isReadOnly只是一只红鲱鱼,虽然为什么它被吸引到那里我不知道。
基本上,在调试模式下,我注意到我的应用程序正在调用onPause,在我的onpause中,我正在关闭数据库。
我想知道是否有一种方法可以阻止Android在调试时调用onpause .....