IllegalStateException-SQLiteClosable.acuireReference

时间:2018-10-02 04:21:56

标签: java android android-sqlite

我有一个与this问题类似的问题。

目前,我将数据插入到我的SQLiteDatabase中,如下所示:

[a-z]

我的private Context context; private SQLiteDatabase database; private SQLiteHelper dbHelper; public DBManager open() throws SQLException { this.dbHelper = new SQLiteHelper(context); this.database = this.dbHelper.getWritableDatabase(); return this; } public void close() { this.dbHelper.close(); } void insertThumb(String _id, String thumbPath, String videoPath) { ContentValues contentValue = new ContentValues(); contentValue.put(SQLiteHelper._ID, _id); contentValue.put(SQLiteHelper.THUMB_PATH, thumbPath); contentValue.put(SQLiteHelper.VIDEO_PATH, videoPath); this.database.insert(SQLiteHelper.TABLE_NAME_THUMBNAIL, null, contentValue); } 扩展了SQLiteHelper

当我想插入数据库时​​,我在“活动”的SQLiteOpenHelper中打开数据库,调用如下:

OnCreate

完成活动(dbManager.insertThumb(String.valueOf(_id), newFile.getPath(), directoryToStore + "/" + fileName); OnBackPressed)后,我关闭数据库。


看着上面提供的问题,被接受的答案是:

OnDestroy

我正在这样做,不是吗?


第二个答案是:

use a SQLiteOpenHelper and call getWritableDatabase() every time you need one.

我是否应该在需要时打开数据库,并在完成后立即将其关闭?像这样-

SQLiteDatabase is closed automatically under some conditions.

有人可以告诉我避免这种情况的最佳做法是什么吗?

0 个答案:

没有答案