Мне было интересно, может ли кто-нибудь дать мне краткий обзор курсоров 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 - Моя база данных мала и используется только моим приложением - могу ли я просто оставить ее открытой?