Базы данных SQLite и курсоры

Мне было интересно, может ли кто-нибудь дать мне краткий обзор курсоров Android. Пара конкретных вопросов:

1 - У меня есть метод, который возвращает курсор после запроса к базе данных:

    public static Cursor getVehicles()
{
    SQLiteDatabase db = vehicleData.getReadableDatabase();
    Cursor cursor = db.query(TABLE_NAME, GET_VEHICLES_FROM_CLAUSE, null, null, null, null, ORDER_BY);

    return cursor;
}

Для выполнения служебных задач я попробовал db.close () непосредственно перед оператором return. Однако это привело к тому, что возвращаемый курсор не содержал строк. Почему это так?

2 - В чем разница между закрытием курсора и закрытием базы данных?

3 - Нужно ли мне вызывать закрытие курсора, если это локальная переменная, или я могу оставить это на помойку сборщик для очистки?

4 - Моя база данных мала и используется только моим приложением - могу ли я просто оставить ее открытой?

5
задан tshepang 8 June 2014 в 20:04
поделиться