안드로이드 개발 질문/답변
(글 수 45,052)
데이터베이스 파일 2개를 사용하고 있는데요~
실행에는 아무 문제가 없는데 쿼리문 실행될때 아래와 같은 로그가 계속 찍힙니다
앱이 죽지는 않고 실행은 잘 되지만 계속 찍히니 찝찝하네요;
내부적으로 두개의 데이터베이스를 close, open 처리하면서 예외처리한게 찍히는걸까요?
08-28 20:25:15.231: E/Database(7233): close() was never explicitly called on database '/data/data//databases/struct.db'
08-28 20:25:15.231: E/Database(7233): android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
08-28 20:25:15.208: W/SQLiteCompiledSql(7233): Releasing statement in a finalizer. Please ensure that you explicitly call close() on your cursor: DELETE FROM use_data
private static HashMap<String, DatabaseHelper> mDBHelpers = new HashMap<String, DatabaseHelper>();
public static synchronized DatabaseHelper getHelper(Context context) {
DatabaseHelper dbHelper = mDBHelpers.get(mDBInfo.getName());
if(dbHelper == null) {
dbHelper = new DatabaseHelper(context);
mDBHelpers.put(mDBInfo.getName(), dbHelper);
}
return dbHelper;
}
public boolean open(){
try {
mSQLiteDB = getHelper(mContext).getWritableDatabase();
if(mSQLiteDB.isOpen())
return true;
} catch(SQLException e) {
} catch(IllegalStateException e) {
} catch(Exception e) {
}
return openRetry(isReadable);
}




어디선가 close 가 제대로 수행이 안되는가 보네요.
DB 는 DAO 에서만 접근하도록 했으면 open / close 가 쉽게 되었을텐데..
이상하군요...
어디선가 새어나가는 소스가 없는지 확인해보시겠어요?