数据库关闭for循环

时间:2013-08-14 21:08:30

标签: android sqlite

好的我在数据库连接关闭时收到了一些奇怪的事情而没有关闭它。这是代码。

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

0 个答案:

没有答案