@H_301_0@close() was never explicitly called on database ××××××××××××××××××
@H_301_0@
@H_301_0@这种错误提示,不会导致程序崩溃,至少我没有遇到。 @H_301_0@
@H_301_0@这个错误来源: @H_301_0@framworks/base/core/java/android/database/sqlite/sqliteDatabase.java @H_301_0@
@Override protected void finalize() { if (isOpen()) { Log.e(TAG,"close() was never explicitly called on database '" + mPath + "' ",mStackTrace); closeClosable(); onAllReferencesReleased(); } }
@H_301_0@我的代码报了这个错误,我感觉很郁闷,因为我的确是 close 了!! @H_301_0@
@H_301_0@ DatabaseHelper dbHelper = new DatabaseHelper(context);
sqliteDatabase db = dbHelper.getWritableDatabase(); @H_301_0@ @H_301_0@ if (db != null && db.isOpen()) {
db.close();
}
if (dbHelper != null) {
dbHelper.close();
}
@H_301_0@
最后发现,在代码里面,有: @H_301_0@
@H_301_0@
if(isDate) { //************ return; }
@H_301_0@所以须将 close 放到这个判断的 return 之前一份,因为 isDate == true,进入这个语句,程序就不会往下执行,那麽还没有 close,就会包错。 @H_301_0@
@H_301_0@这样就没有错误了。