经常与数据库打交道的 frend 们,估计肯定遇到这样的错误提示:
close() was never explicitly called on database ××××××××××××××××××
这个错误来源:
framworks/base/core/java/android/database/sqlite/sqliteDatabase.java
@Override protected void finalize() { if (isopen()) { Log.e(TAG,"close() was never explicitly called on database '" + mPath + "' ",mStackTrace); closeClosable(); onAllReferencesReleased(); } }
我的代码报了这个错误,我感觉很郁闷,因为我的确是 close 了!!
DatabaseHelper dbHelper = new DatabaseHelper(context);
sqliteDatabase db = dbHelper.getWritableDatabase();
if (db != null && db.isopen()) {
db.close();
}
if (dbHelper != null) {
dbHelper.close();
}
最后发现,在代码里面,有:
if(isDate) { //************ return; }
所以须将 close 放到这个判断的 return 之前一份,因为 isDate == true,进入这个语句,程序就不会往下执行,那麽还没有 close,就会包错。
这样就没有错误了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。