android - programacion - ¿Debo abrir() y cerrar() mi base de datos SQL constantemente o dejarla abierta?
manual de programacion android pdf (5)
Creo que la respuesta a esta pregunta también depende de qué tipo de aplicación está accediendo a la base de datos.
Si vuelve a consultar la base de datos mucho En este caso, puede mantener la base de datos abierta.
¿Hay alguna otra aplicación que acceda a la misma base de datos? Si existe un riesgo de problemas de concurrencia o bloqueo, puede ser conveniente cerrar la base de datos después de terminar de leer / escribir desde / hacia ella.
Echa un vistazo a la siguiente url
¿Cuándo cerrar la conexión db en Android? Cada vez que termine su operación o después de que su aplicación salga
Gracias Deepak
Estoy creando una aplicación que utiliza una base de datos SQL para almacenar datos. La forma en que se diseñó la aplicación se actualizará cada 3 minutos aproximadamente con nuevos datos dependiendo de las acciones del usuario mientras se ejecuta la aplicación.
En los tutoriales que he visto, recomiendan que cierre la base de datos después de cambiarla (es un "costoso" en términos de recursos).
¿Es mejor dejarlo abierto durante la duración de mi aplicación ya que se está actualizando con bastante frecuencia o debo ejecutar el método close () inmediatamente después de cada cambio?
Supongo que mi preocupación es que abrirlo y cerrarlo constantemente atraerá más recursos que si lo dejara abierto todo el tiempo.
Intenté dejar una conexión abierta una vez, la usé para rellenar un repetidor o algo, no puedo recordar ahora.
Más adelante en el programa, tuve otra necesidad de usar la conexión: creo que la tenía para que cuando un usuario hiciera clic en un elemento principal en el repetidor, apareciera un div detalle con más información para ese elemento. Esto generó un error, algo como "no se puede abrir () en una conexión abierta".
Creo que el error podría haberse evitado de otra manera (como verificar si la conexión que estaba tratando de abrir ya estaba abierta), pero al pensarlo, me di cuenta de que tenía que hacer de eso una práctica estándar en toda la aplicación. , y eso me pareció demasiado trabajo, así que hice una práctica estándar para cerrar siempre mis conexiones después de cada uso.
Las conexiones permanecen en una agrupación de conexiones, no estoy al tanto de eso, pero si tuviera curiosidad por el rendimiento, creo que lo tendría en cuenta, en términos de lo que cuesta abrir una conexión varias veces, sea cual sea su La situación es necesaria de todos modos.
Otra idea es que su administrador de base de datos puede ser capaz de forzar el cierre de todas las conexiones abiertas, o la db puede cerrarse por alguna otra razón. Si no eres el dba, podrías pensar en el riesgo / beneficio de depender de algo sobre lo que no tienes control a largo plazo, como mantener la conexión abierta.
Si me pregunta por todo lo que he leído hasta ahora acerca de Android y, en general, es mejor cerrarlo justo después de realizar las modificaciones.
Lo que creo que es mejor hacer cuando puede es crear y registrar un proveedor de contenido. Tiene sus precios pero creo que ganas mucho más de lo que pagas. Puedes hacer casi todo con un proveedor de contenido y el ejemplo del bloc de notas en el portal de Android es excelente para aprender a implementarlo. Se encarga de la sincronización de db y de su apertura / cierre. así que tal vez mira en eso.
Supongamos que tiene varias operaciones de base de datos que hacer en una sola secuencia. Mantendría el DB abierto para hacer esas acciones. Sin embargo, cierre la base de datos después de hacer un pedazo de trabajo.
Tres minutos es la eternidad en los procesadores de hoy, incluso los procesadores de teléfonos. Lo cerraría y lo abriría cada vez. Es mejor que posiblemente dejar mangos colgando en ''el éter''.