SQLiteOpenHelper dbOpenHelper = new (ctx, nameofdb);
SQLiteDatabase db = dbOpener.getWritableDatabase();
¿Tengo que llamar .close()
en ambos, o sólo uno de ellos es suficiente? Si es así, ¿cuál?¿Debo llamar .close() en tanto SQLiteDatabase y SQLiteOpenHelper
SQLiteDatabase
SQLiteOpenHelper
El problema que estoy teniendo es que no veo una fila en particular en vista DDMS en Eclipse, pero cuando se utiliza el cursor para conseguirlo, se nota que tengo esa entrada. ¿Entonces me pregunto si podría ser causado por no cerrar la base de datos correctamente? Cualquiera que pueda ayudar sería genial. ¡Gracias!
¿Qué pasa con [Principio de responsabilidad única] (http://en.wikipedia.org/wiki/Single_responsibility_principle)? Pensé que la clase 'SQLiteOpenHelper' solo usa [para ayudar] a abrir (para crear \ actualizar) una base de datos. –
@LeonidSemyonov: Podría argumentarse que simplemente extender cualquier clase y agregar funcionalidad (nuevos métodos o implementando interfaces) agrega responsabilidades adicionales de todos modos ... pero hacerlo es un principio fundamental de OOD/OOP. No es raro en Android crear una clase DB 'ayudante' genérica que a su vez mantiene un 'SQLiteOpenHelper'. Mi punto es en ciertos casos, 'SQLiteOpenHelper' se puede extender para proporcionar * TODOS * los métodos de DB 'ayudante' en lugar de tener un DB 'ayudante' POJO separado. – Squonk
@Squonk no 'cierra ningún objeto de base de datos abierto' implica que cerrará todas las instancias de SqliteDatabase abiertas en la aplicación (suponiendo que haya varias abiertas) o solo cierra las que están vinculadas al objeto SqliteOpenHelper actual? – aandis