我已经越来越此异常,DatabaseObjectNotClosedException:如何解决这个异常?
close() was never explicitly called on database '/data/data/com.project.test/databases/database'
E/SQLiteDatabase(13921): android.database.sqlite.DatabaseObjectNotClosedException:
Application did not close the cursor or database object that was opened here
我试图关闭数据库助手和游标,但我会得到运行时异常。当我离开活动并在点击后退按钮后重新访问它时,会发生这种情况。
如何正确关闭我的游标和助手?
我已经尝试了两种方法:
首先,关闭游标每一个人使用后,在onPause和关闭数据库帮手。
秒,随着数据库帮助关闭游标onpause,但都没有奏效。
有人可以帮助我吗?
编辑:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activity = this.getActivity();
context = this.getActivity().getApplicationContext();
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mDbHelper = new DatabaseHelper(context);
mDbHelper.open();
populateList();
}
public void populateList() {
directoryCursor = mDbHelper.fetchAllRootDirectories();
activity.startManagingCursor(directoryCursor);
adapter = new DirectoryListAdapter(this.getActivity(), directoryCursor);
this.setListAdapter(adapter);
}
......
private UpdateDatabaseListener updateDatabaseListener = new UpdateDatabaseListener() {
public void onUpdate(int from, int to) {
.....
findExistingRecordCursor = mDbHelper.findExistingRecords(from, to);
activity.startManagingCursor(findExistingRecordCursor);
if(findExistingRecordCursor.getCount() == 0) {
....
}
}
}
我在OnCreate()函数打开的数据库帮手。 填充列表视图时使用的游标, 用于查找现有记录的游标, 游标以获取信息。
UPDATE:
我试图关闭的onPause和的onDestroy,但它仍然与RuntimeException的崩溃。
能否请您发布您的代码 – Gaurav
@Gaurav这部分的代码,你真正需要看到的?因为它确实有很多代码。我可以看到我可以粘贴什么。 –
@Gaurav我写下我在那里用databasehelper和游标 –