0

好的,我在关闭数据库连接而不关闭它的情况下感到有些奇怪。这是代码。

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 循环之后立即检查它是关闭的。我仍然不知道发生了什么,但至少这是向前迈出的一步。

4

0 回答 0