好的我在数据库连接关闭时收到了一些奇怪的事情而没有关闭它。这是代码。
boolean dbOpen = database.isOpen();
for (PlanModel plan : plans) {
dbOpen = database.isOpen();
Map<MessierObjectModel, NoteModel> planObjects = new HashMap<MessierObjectModel, NoteModel>();
query = "select astro_plan_entry_id, messier_catalog_id from astro_plan_entry where astro_plan_id = " + plan.getPlanId();
cursor = database.rawQuery(query, null);
dbOpen = database.isOpen();
if (cursor.getCount() > 0 && cursor.moveToFirst()) {
do {
NoteModel objectNote = getPlanObjectNote(cursor.getInt(0));
planObjects.put(getMessierObject(cursor.getInt(1)), objectNote);
} while (cursor.moveToNext());
}
plan.setPlanObjects(planObjects);
cursor.close();
}
close();
第一次循环运行数据库一直保持打开状态。但是,第二次通过dbOpen是假的。我无法弄清楚为什么会发生这种情况,数据库是一个类字段,在调用close()方法之前它不会被关闭。
编辑:好看,它似乎正在从 cursor.moveToNext()关闭。或者至少如果我在while循环后检查它就会关闭。我仍然不知道发生了什么,但至少它向前迈了一步。